Литмир - Электронная Библиотека
Содержание  
A
A

def solve(self):

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

3.3 QLabel

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

Программирование на Python3 с PyQt5 - img_33.png

СвойствоНазначение
Программирование на Python3 с PyQt5 - img_34.png
Имя компонента
Программирование на Python3 с PyQt5 - img_35.png
Доступность
Программирование на Python3 с PyQt5 - img_36.png
Положение компонента и его размеры
Программирование на Python3 с PyQt5 - img_37.png
Шрифт, размер шрифта
Программирование на Python3 с PyQt5 - img_38.png
Вид курсора
Программирование на Python3 с PyQt5 - img_39.png
Надпись
Программирование на Python3 с PyQt5 - img_40.png
Картинка
Программирование на Python3 с PyQt5 - img_41.png
Масштабирование картинки

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

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

Программирование на Python3 с PyQt5 - img_42.png

СвойствоНазначение
Программирование на Python3 с PyQt5 - img_43.png
Имя компонента
Программирование на Python3 с PyQt5 - img_44.png
Доступность
Программирование на Python3 с PyQt5 - img_45.png
Положение компонента и его размеры
Программирование на Python3 с PyQt5 - img_46.png
Шрифт, размер шрифта
Программирование на Python3 с PyQt5 - img_47.png
Вид курсора
Программирование на Python3 с PyQt5 - img_48.png
Стиль рамки
Программирование на Python3 с PyQt5 - img_49.png
Надпись

        a = self.lineEdit_a.text()

        self.lineEdit_a.setText('')

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

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

Программирование на Python3 с PyQt5 - img_50.png

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

Программирование на Python3 с PyQt5 - img_51.png

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()

3.6 Конвертация файла «ui» в скрипт Python

(PyQt5 UI code generator)

pyuic5 name.ui -o name.py

Запускаем из папки с файлом ui в cmd, после чего появляется “py” скрипт в той же папке.

ЛЕКЦИЯ 4 – СПИСКИ, СЛОВАРИ, ЦИКЛЫ И МАССИВЫ

4.1 Списки и кортежи

Список представляет собой упорядоченную последовательность элементов. Он очень гибкий и является одним из самых используемых типов в Python. Элементы списка не обязательно должны быть одного типа.

Объявить список довольно просто. Внутрь квадратных скобок помещаются элементы списка, разделённые запятой:

4
{"b":"724394","o":1}