Оглавление
- ЛЕКЦИЯ 1 – УСТАНОВКА PYTHON, БИБЛИОТЕК И IDE
- 1.1 Установка Python3
- 1.2 Установка в Python библиотек Qt5, Spyder3 и других модулей
- 1.3 Запуск стандартной графической оболочки IDLE
- 1.4 Запуск графической оболочки Spyder3
- 1.5 Использование сторонней IDE PyCharm
- 1.6 Компиляция в exe-файл
- 1.7 Если поломался Python и не работает pip, spyder3 или pyinstaller
- 1.8 Установка PyQt5 в Linux
- ЛЕКЦИЯ 2 – ОСНОВНЫЕ ТИПЫ ДАННЫХ, УСЛОВИЯ И ОПЕРАЦИИ
- 2.1 Числовые и строковые переменные
- 2.2 Условный оператор
- 2.3 Тернарный условный оператор
- ЛЕКЦИЯ 3 – ОСНОВНЫЕ КОМПОНЕНТЫ PYQT5
- 3.1 QWidget и QDialog
- 3.2 QPushButton
- 3.3 QLabel
- 3.4 QLineEdit
- 3.5 Практический пример
- 3.6 Конвертация файла «ui» в скрипт Python
- ЛЕКЦИЯ 4 – СПИСКИ, СЛОВАРИ, ЦИКЛЫ И МАССИВЫ
- 4.1 Списки и кортежи
- 4.2 Словари
- 4.3 Циклы
- Конец ознакомительного фрагмента
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() # базовый класс для всех объектов интерфейса пользователя
window.show() # отобразить окно на экране
sys.exit(app.exec_()) # запуск основного цикла приложения
if __name__ == '__main__':
main()