Программирование на Python3 с PyQt5. Сергей Николаевич Талипов

Читать онлайн.
Название Программирование на Python3 с PyQt5
Автор произведения Сергей Николаевич Талипов
Жанр Программирование
Серия
Издательство Программирование
Год выпуска 2020
isbn



Скачать книгу

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

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