Pyqt5 python примеры программ

Если вдруг так получилось, что для вашего проекта на Python понадобился интерфейс, а возиться с Tkinter не хочется, очевидным решением станет PyQt5. Из плюсов стоит отметить легкость и быстроту построения интерфейса, из минусов — это очень большой размер исполняемого файла (если такой конечно будет), по сравнению с тем же Tkinter.

Установка

Для работы нам понадобится библиотека для питона pyqt5 и Qt Creator. Как и большинство библиотек в Питоне, проще всего их ставить через имеющийся pip. Открываем командную строку (или PowerShell) с правами администратора и вводим

pip install pyqt5

Скриншот PowerShell

Теперь переходим к установке Qt Creator, в нем нам нужен только дизайнер.
Заходим на сайт qt.io, жмем «Start for free»

Скриншот скачивания Qt Creator

Далее «Desktop

ПРОГРАММА КОНВЕРТЕР ВАЛЮТ с графическим интерфейсом на PyQT5 | PYTHON

Скриншот скачивания Qt Creator

Скриншот скачивания Qt Creator

Наконец, мы получаем ссылочку на заветный инсталятор

По ходу установки не забываем проверить наличие компонента Qt Creator (он уже отмечен, но проверьте на всякий случай).

Установка QtCreator

Создание простого интерфейса в QtCreator

После запуска создаем новый проект, не вдаваясь в подробности жмем далее, далее.

Проектирование интерфейса PyQt

Проектирование интерфейса PyQt

В списке компонентов проекта ищем файл формы, щелкаем по нему два раза, откроется редактор интерфейса.

Проектирование интерфейса PyQt

Проектирование интерфейса PyQt

Создаем простенький интерфейс и сохраняем.

Проектирование интерфейса PyQt

Переходим в папку с проектом и копируем файл mainwindow.ui в папку Scripts, которая находится в папке с Python’ом, и вводим след. команду

./pyuic5.exe mainwindow.ui -o gui.py

Файлы интерфейса PyQt

Полученный gui.py перемещаем в папку с питоновским проектом и подключаем соответствующим кодом. (В данном примере главным файлом является main.py, в котором далее мы подключаем gui.py) (Скопировать код)

Лучшая Графическая (GUI) Библиотека Для Python | Tkinter VS WxPython VS PyQt(PySide) VS Kivy

Код запуска интерфейса PyQt

Пробуем запустить и ..

Скриншот интерфейса PyQt

Работает 🙂 Но пока это просто интерфейс, давайте придадим ему жизни, добавив событие на кнопку.

Привязка события на нажатие кнопки

Идем обратно в main.py и связываем кнопку с функцией, которая передает текст в текстовое окно. Привязка события на кнопку создается через сигналы и слоты.
В моем примере программа условно генерирует ключи, поэтому я добавил еще одну функцию отвечающую за этот процесс. Далее полученный функцией ключ нужно вывести в окно.

self.pushButton.clicked.connect(self.buttonClicked)
В данном случае pushButton — это имя объекта (кнопки), clicked — событие (сигнал), buttonClicked — функция, которая исполнится при этом событии (слот).

Код события PyQt

Запускаем, и наслаждаемся работой.

Исходный код

# -*- coding: utf-8 -*- # Form implementation generated from reading ui file ‘mainwindow.ui’ # # Created by: PyQt5 UI code generator 5.8.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(«MainWindow») MainWindow.resize(469, 292) self.centralWidget = QtWidgets.QWidget(MainWindow) self.centralWidget.setObjectName(«centralWidget») self.pushButton = QtWidgets.QPushButton(self.centralWidget) self.pushButton.setGeometry(QtCore.QRect(30, 90, 111, 51)) self.pushButton.setObjectName(«pushButton») self.textEdit = QtWidgets.QTextEdit(self.centralWidget) self.textEdit.setGeometry(QtCore.QRect(200, 40, 221, 181)) self.textEdit.setObjectName(«textEdit») MainWindow.setCentralWidget(self.centralWidget) self.menuBar = QtWidgets.QMenuBar(MainWindow) self.menuBar.setGeometry(QtCore.QRect(0, 0, 469, 21)) self.menuBar.setObjectName(«menuBar») MainWindow.setMenuBar(self.menuBar) self.mainToolBar = QtWidgets.QToolBar(MainWindow) self.mainToolBar.setObjectName(«mainToolBar») MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar) self.statusBar = QtWidgets.QStatusBar(MainWindow) self.statusBar.setObjectName(«statusBar») MainWindow.setStatusBar(self.statusBar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate(«MainWindow», «Keygen example»)) self.pushButton.setText(_translate(«MainWindow», «Нажми на меня»))
import random import string import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * import gui class Example(QMainWindow, gui.Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) self.pushButton.clicked.connect(self.buttonClicked) def generate_pins(self, size=6, chars=string.digits): return ».join(random.choice(chars) for x in range(size)) def buttonClicked(self): self.textEdit.append(self.generate_pins(10)) if __name__ == ‘__main__’: app = QApplication(sys.argv) form = Example() form.show() app.exec()

Читайте также:
Как узнать реестр программы

Источник: liberbear.com

PyQt5: первые программы

Python 3 логотип

Я начинаю перевод серии уроков PyQt5 от zetcode.

PyQt5 — это набор Python библиотек для создания графического интерфейса на базе платформы Qt5 от компании Digia.

Он доступен для Python 2.x и 3.x. Этот учебник использует Python 3.

Библиотека Qt является одной из самых мощных библиотек GUI (графического интерфейса пользователя).

Установить PyQt5 на Windows можно с официального сайта библиотеки.

Установить PyQt5 на linux-системы можно с помощью любого менеджера пакетов:

sudo apt-get install python3-pyqt5 pyqt5-dev-tools

PyQt5 реализован в виде набора python-модулей. Эта библиотека имеет более 620 классов и 6000 функций и методов.

Это мультиплатформенная библиотека, которая работает на всех основных операционных системах, в том числе Unix, Windows и Mac OS.

Простой пример

Это простой пример, показывающий небольшое окно. Тем не менее, мы можем многое сделать с этим окном. Мы можем изменить его размер, развернуть его или свернуть. Это требует написания значительного объёма кода. Однако кто-то уже запрограммировал эту функциональность до нас.

Поскольку эта функциональность повторяется в большинстве приложений, нет необходимости писать её снова.

PyQt5 является инструментом высокого уровня. Если бы мы писали это на более низком уровне, следующий пример кода легко мог бы растянуться на сотни строк:

Приведенный выше код показывает небольшое окно на экране.
Здесь мы делаем необходимые импорты. Основные виджеты расположены в PyQt5.QtWidgets.
Каждое приложение PyQt5 должно создать объект приложения (экземпляр QApplication). Параметр sys.argv это список аргументов командной строки.

Скрипты Python можно запускать из командной строки. Это способ, которым мы можем контролировать запуск наших сценариев.
Виджет QWidget это базовый класс для всех объектов интерфейса пользователя в PyQt5. Мы предоставляем конструктор по умолчанию для QWidget. Конструктор по умолчанию не имеет родителя. Виджет без родителей называется окно.

Метод resize() изменяет размеры виджета. Он стал 250 пикселей в ширину и 150 в высоту.
Метод move() двигает виджет на экране на координату x=300, y=300.
Здесь мы задаём заголовок нашего окна.
Метод show() отображает виджет на экране. Виджет сначала создаётся в памяти, и только потом (с помощью метода show) показывается на экране.

Наконец, мы попадаем в основной цикл приложения. Обработка событий начинается с этой точки. Основной цикл получает события от оконной системы и распределяет их по виджетам приложения. Основной цикл заканчивается, если мы вызываем метод exit() или главный виджет уничтожен. Метод sys.exit() гарантирует чистый выход.

Вы будете проинформированы, как завершилось приложение.

Метод exec_ () имеет подчеркивание. Это происходит потому, что exec является ключевым словом в python 2.

Значок приложения

Значок приложения — небольшое изображение, которое обычно отображается в верхнем левом углу заголовка. В следующем примере мы покажем, как сделать это в PyQt5. Мы также представим некоторые новые методы.

Читайте также:
Программы для битмейкинга для новичков

Не забудьте также скачать какую-нибудь иконку 🙂

Предыдущий пример был написан в процедурном стиле. Язык программирования Python поддерживает как процедурный, так и объектно-ориентированный стили программирования. Программирование в PyQt5 означает программирование в ООП.

Три важные вещи в объектно-ориентированном программировании это классы, данные и методы. Здесь мы создаем новый класс Example. Класс Example наследуется от класса QWidget. Это означает, что мы вызываем два конструктора: первый для класса Example и второй для родительского класса. Функция super() возвращает родительский объект Example с классом, и мы вызываем его конструктор.

Создание GUI делегируется методу initUI().
Все три метода были унаследованы от класса QWidget.

Метод setGeometry() делает две вещи: помещает окно на экране и устанавливает его размер. Первые два параметра х и у — это позиция окна. Третий — ширина, и четвертый — высота окна.

На самом деле, он сочетает в себе методы resize() и move() в одном методе.

Последний метод устанавливает иконку приложения. Чтобы сделать это, мы создали объект QIcon. QIcon получает путь к нашей иконке для отображения.

Создаются объекты application и Example. Запускается основной цикл.

Подсказки

PyQt

Основы

Автор Иван Душенко На чтение 12 мин Просмотров 4.7к. Опубликовано 20.07.2021

Введение в тему

В данном уроке по PyQt5 мы изучим, как использовать Пайтон и Qt для создания графического интерфейса пользователя в самых распространённых операционных системах.

Что такое pyqt5

PyQt – это модуль, предназначенный для создания графических интерфейсов в Python через библиотеку Qt. Эта библиотека написана на языке C++ и является одним из самых популярных инструментов разработки GUI, а также имеет обширное сообщество. Существует и альтернатива: модуль PySide. Различаются они тем, что PyQt нельзя свободно использовать в коммерческих проектах, однако, этот модуль, всё же, более зрелый. Существуют и другие распространённые средства создания графических интерфейсов:

Установка pyqt

Устанавливать модуль будем в виртуальную среду. Для этого вводим в консоли:

python3 -m venv venv

Эта команда создаст папку venv/. Чтобы запустить виртуальную среду в ОС Windows, выполните следующую команду:

call venv/scripts/activate.bat

Для остальных ОС это делается так:

source venv/bin/activate

Если всё получилось, в начале строки в терминале появится префикс (venv).

Теперь, для установки PyQt с помощью pip, выполните следующую команду:

pip install PyQt5

Создание gui графического интерфейса пользователя

Теперь можно приступить к созданию интерфейса. Сперва модуль надо импортировать:

from PyQt5.QtWidgets import QApplication, QLabel

Теперь необходимо создать объект приложения QApplication при помощи следующей команды:

app = QApplication([])

В объект приложения необходимо передавать список аргументов. В данном случае он пустой [], но, общепринятая практика писать следующим образом:

import sys app = QApplication(sys.argv)

sys.argv – аргументы командной строки и теперь Вы можете запустить свой скрипт из консоли, передав при этом какие-то аргументы.

Дальше нужно создать виджет (о них мы поговорим чуть позже):

label = QLabel(‘Hello World!’)

На данный момент наш маленький интерфейс готов, но, чтобы его увидел пользователь, надо использовать метод show:

label.show()

Внешний вид будет зависеть от Вашей операционной среды.

Читайте также:
Программа которая генерирует 10 случайных чисел в диапазоне от 1 до 10

Осталось запустить приложение:

app.exec_()

После этой команды скрипт попадает в цикл обработки событий. Благодаря этому, мы можем понимать, что делает пользователь: заполняет поля, нажимает кнопки и так далее. Хороший вариант обрабатывать закрытие окна:

sys.exit(app.exec_())

Метод sys.exit() обеспечивает чистый выход. Вы сможете узнать, как завершилось приложение.

Виджеты

Виджеты – это все видимые части интерфейса. Они могут быть вложены друг в друга.

На этом изображении представлены самые часто встречающиеся виджеты:

PyQt

Они перечислены ниже в порядке сверху вниз и слева направо:

  • QLabel — обеспечивает отображение текста или изображения
  • QComboBox — представляет собой комбинированную кнопку и всплывающий список
  • QCheckBox — предоставляет флажок с текстовой меткой
  • QRadioButton — предоставляет переключатель с текстовой меткой
  • QPushButton — предоставляет командную кнопку
  • QTableWidget — предоставляют стандартные средства отображения таблиц для приложений
  • QLineEdit – изменяемая строка
  • QSlider — вертикальный или горизонтальный ползунок
  • QProgressBar — предоставляет горизонтальную или вертикальную полосу выполнения

Есть ещё несколько важных методов виджетов, о которых нельзя не рассказать:

resize() — изменяет размеры виджета.

move() — двигает виджет на экране.

setWindowTitle() – устанавливает название окна.

import sys from PyQt5.QtWidgets import * app = QApplication(sys.argv) mywidget = QWidget() mywidget.resize(750, 650) mywidget.move(0, 0) mywidget.setWindowTitle(‘My Window’) mywidget.show() sys.exit(app.exec_())

Этот код создаёт пустое окно размером 750*650 пикселей, расположенное в верхнем левом углу. Название окна — ‘My Window’.

Есть ещё очень важный инструмент для создания интерфейсов — Qt Designer. Это программа, которая делает проще процесс создания графического интерфейса программы, конечно внешний вид можно сделать и без помощи данной программы, но не для всех это будет удобно. На данный момент разработчики прекратили поддержку этого инструмента.

Макеты

Чаще всего приложение состоит из целого набора виджетов. Если так, то нужно объяснить Qt, как их разместить внутри окна. Например, вы можете использовать QHBoxLayout для горизонтального расположения виджетов:

PyQt

Листинг кода, создающего окно, представленное на изображении выше:

import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout app = QApplication(sys.argv) mywindow = QWidget() mylayout = QHBoxLayout() mylayout.addWidget(QPushButton(‘Hello’)) mylayout.addWidget(QPushButton(‘World’)) mywindow.setLayout(mylayout) mywindow.show() sys.exit(app.exec_())

Что здесь происходит? Сперва мы импортируем необходимые модули, затем создаём объект приложения. Создаём виджет типа QWidget. Это базовый тип, не имеющий поведения.

Дальше инициируем макет (mylayout), а в нём две кнопки QPushButton. Строка mywindow.setLayout(mylayout) говорит QT что для виджета mywindow будет использоваться именно этот макет. Делаем всё это видимым и запускаем.

Qt включает набор классов управления компоновкой, которые используются для описания компоновки виджетов в пользовательском интерфейсе приложения. Эти макеты автоматически позиционируют и изменяют размер виджетов, когда объем доступного для них места изменяется, гарантируя, что они единообразно расположены и пользовательский интерфейс в целом остается пригодным для использования. Вот список макетов:

QHBoxLayout – располагает виджеты горизонтально.

QVBoxLayout — располагает виджеты вертикально.

QGridLayout – сеточный макет. Этот макет делит пространство на строки и столбцы.

QFormLayout — размещает свои дочерние элементы в виде двух столбцов.

Если Вы знакомы с языком CSS, то, конечно же, заметили что QHBoxLayout и QVBoxLayout похожи на flexbox, а QGridLayout – на grid.

Источник: pythoninfo.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru