Чтение онлайн

на главную - закладки

Жанры

Программирование на Python3 с PyQt5
Шрифт:

3.1 QWidget и QDialog

Окно

СвойствоНазначение
Имя окна
Доступность
Размеры
окна, запрет изменения размера
Шрифт, размер шрифта
Вид курсора
Заголовок окна
Иконка окна
Модальность окна (только у QDialog)

self.setWindowTitle('Создание простейшей визуальной программы')

self.setWindowIcon(QtGui.QIcon('images/logo.png'))

class Main(QWidget) или class Main(QDialog)

 app = QApplication(sys.argv)

window = Main

window.show

sys.exit(app.exec_)

3.2 QPushButton

Кнопка

СвойствоНазначение
Имя компонента
Доступность
Положение компонента и его размеры
Шрифт, размер шрифта
Вид курсора
Стиль рамки
Надпись

def solve(self):

self.btn_solve.clicked.connect(self.solve)

3.3 QLabel

Текстовая метка

СвойствоНазначение
Имя компонента
Доступность
Положение компонента и его размеры
Шрифт, размер шрифта
Вид курсора
Надпись
Картинка
Масштабирование
картинки

self.label_img.setPixmap(QPixmap('images/main.png'))

self.label_img.setScaledContents(True)

self.label_answer.setText('Ответ: ' + str(format(answer, '.12f')))

print (QtGui.QtextDocument(self.label_answer.text).toPlainText)

3.4 QLineEdit

Текстовое поле для ввода/вывода

СвойствоНазначение
Имя компонента
Доступность
Положение компонента и его размеры
Шрифт, размер шрифта
Вид курсора
Стиль рамки
Надпись

a = self.lineEdit_a.text

self.lineEdit_a.setText('')

3.5 Практический пример

Вид при использовании QWidget

Вид при использовании QDialog

import sys

from PyQt5 import QtGui

from PyQt5.QtGui import QPixmap

from PyQt5.QtWidgets import *

from PyQt5.uic import loadUi

class Main(QDialog):

def __init__(self):

super(Main, self).__init__

loadUi('uis/main.ui', self) # загрузка формы в py-скрипт

self.setWindowTitle('Создание простейшей визуальной '

'программы на Python')

self.setWindowIcon(QtGui.QIcon('images/logo.png'))

self.label_img.setPixmap(QPixmap('images/main.png'))

self.label_img.setScaledContents(True)

self.btn_solve.clicked.connect(self.solve) # Связь кнопки с методом

self.btn_clear.clicked.connect(self.clear) # Связь кнопки с методом

self.btn_exit.clicked.connect(self.exit) # Связь кнопки с методом

def solve(self):

a = self.lineEdit_a.text

b = self.lineEdit_b.text

x = self.lineEdit_x.text

if validation_of_data(a, b, x):

a = float(a)

b = float(b)

x = float(x)

if x > 6:

answer = a / x + b / x ** 2

else:

answer = a ** 2 * (x + b)

self.label_answer.setText('Ответ: ' + str(format(answer, '.2f')))

else:

self.label_answer.setText(

'Ошибка!')

def clear(self):

self.lineEdit_a.setText('')

self.lineEdit_b.setText('')

self.lineEdit_x.setText('')

self.label_answer.setText('Ответ: ')

def exit(self):

self.close

def validation_of_data(a, b, x):

"""

проверяем валидность наших данных, с помощью перехвата исключения

:param a: число, полученное из lineEdit_a

:param b: число, полученное из lineEdit_b

:param x: число, полученное из lineEdit_x

:return: True – прошло валидацию, False – нет

"""

try:

float(a)

float(b)

float(x)

return True

except Exception:

return False

def main:

# каждое приложение должно создать объект QApplication

# sys.argv – список аргументов командной строки

app = QApplication(sys.argv)

window = Main # базовый класс для всех объектов интерфейса пользователя

Поделиться:
Популярные книги

Новик

Ланцов Михаил Алексеевич
2. Помещик
Фантастика:
альтернативная история
6.67
рейтинг книги
Новик

Личный аптекарь императора. Том 6

Карелин Сергей Витальевич
6. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Личный аптекарь императора. Том 6

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Ветер перемен

Ланцов Михаил Алексеевич
5. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ветер перемен

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Личный аптекарь императора

Карелин Сергей Витальевич
1. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора

Император Пограничья 9

Астахов Евгений Евгеньевич
9. Император Пограничья
Фантастика:
городское фэнтези
аниме
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 9

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Идеальный мир для Лекаря 29

Сапфир Олег
29. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 29

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Черный Маг Императора 9

Герда Александр
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 9

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Цикл "Отмороженный". Компиляция. Книги 1-14

Гарцевич Евгений Александрович
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Цикл Отмороженный. Компиляция. Книги 1-14

Индульгенция 2. Без права на жизнь

Машуков Тимур
2. Темный сказ
Фантастика:
аниме
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Индульгенция 2. Без права на жизнь