Программирование на Python3 с PyQt5
Шрифт:
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) #
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
3.6 Конвертация файла «ui» в скрипт Python
(PyQt5 UI code generator)
pyuic5 name.ui -o name.py
Запускаем из папки с файлом ui в cmd, после чего появляется “py” скрипт в той же папке.
ЛЕКЦИЯ 4 – СПИСКИ, СЛОВАРИ, ЦИКЛЫ И МАССИВЫ
4.1 Списки и кортежи
Список представляет собой упорядоченную последовательность элементов. Он очень гибкий и является одним из самых используемых типов в Python. Элементы списка не обязательно должны быть одного типа.
Объявить список довольно просто. Внутрь квадратных скобок помещаются элементы списка, разделённые запятой:
a = [67, 5, 90, 20, 30]
b = ['Маша', 'Ваня', 'Лена', 'Марина', 'Арнольд']
print(a)
print(b)
aa = a[:] # Автономная копия списка
aaa = list(a) # Автономная копия списка
aaaa = a.copy # Автономная копия списка
aaa.reverse # Сортировка списка в обратном порядке
print(a[0]) # Первый элемент 67
print(a[2]) # Третий элемент 90
print(b[1]) # второй элемент Ваня
b.append('Дима') # Добавление элемента в конец списка
print(b[-1]) # Печать последнего элемента Дима
a.sort # Сортировка списка
print(a) # [5, 20, 30, 67, 90]
print(aa) # [67, 5, 90, 20, 30]
print(aaa) # [30, 20, 90, 5, 67]
print(aaaa) # [67, 5, 90, 20, 30]
[67, 5, 90, 20, 30]
['Маша', 'Ваня', 'Лена', 'Марина', 'Арнольд']
67
90
Ваня
Дима
[5, 20, 30, 67, 90]
[67, 5, 90, 20, 30]
[30, 20, 90, 5, 67]
[67, 5, 90, 20, 30]
Так же как и список, кортеж (tuple) является упорядоченной последовательностью элементов. Вся разница заключается в том, что кортежи неизменяемы. Кортежи используются для защиты данных от перезаписи и обычно работают быстрее, чем списки, т.к. их нельзя изменять.
Для создания кортежа нужно поместить внутрь круглых скобок элементы, разделённые запятой:
t = (5, 'program', 1 + 3j)
print("t[0] =", t[0])
print("t[1] =", t[1])
print("t[2] =", t[2])
for i in t:
print(i, end=" – ")
t[0] = 5
t[1] = program
t[2] = (1+3j)
5 – program – (1+3j) –
Списки имеют большой набор функций:
• append , extend – добавление;
• insert – вставка;