Python — это высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода, как говорит нам Википедия. А также активно используется для написания Web-приложений. Ну а для работы с Qt для Python была разработана компанией Riverbank Computing библиотека PyQt5, которая является набором «привязок» к библиотеке Qt5. Из интереса, я решил написать небольшой Hello World с использованием PyQt5.
Установка
Первым делом устанавливаем Python, в моём случае это Python 3.5.2. Для Windows можно скачать установочный пакет с официального сайта Python . Для Linux можем воспользоваться стандартным менеджером пакетов. Далее необходимо установить PyQt5. В случае Linux можно либо установить с помощью стандартного менеджера пакетов. Например, для deb-based дистрибутивов:
sudo apt-get install python python3-pyqt5 pyqt5-dev-tools
Либо установить сначала утилиту pip для установки пакетов Python:
sudo apt-get install python-pip
И уже произвести установку с помощью данной утилиты, что будет аналогично как для Windows, так и для Linux систем:
Пример программы на PyQT — Парсер новостей
pip install PyQt5
Для разработки на Python была выбрана IDE PyCharm.
Hello World
А теперь напишем небольшую программу на PyQt5, которая будет запускать окно приложения с надписью и иметь один пункт меню в панели меню. По клику на данный пункт будем закрывать приложение.
Полный текст программы
from PyQt5 import QtCore, QtWidgets from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, QWidget, qApp, QAction from PyQt5.QtCore import QSize # Наследуемся от QMainWindow class MainWindow(QMainWindow): # Переопределяем конструктор класса def __init__(self): # Обязательно нужно вызвать метод супер класса QMainWindow.__init__(self) self.setMinimumSize(QSize(480, 320)) # Устанавливаем размеры self.setWindowTitle(«Hello world. «) # Устанавливаем заголовок окна central_widget = QWidget(self) # Создаём центральный виджет self.setCentralWidget(central_widget) # Устанавливаем центральный виджет grid_layout = QGridLayout(self) # Создаём QGridLayout central_widget.setLayout(grid_layout) # Устанавливаем данное размещение в центральный виджет title = QLabel(«Hello World on the PyQt5», self) # Создаём лейбл title.setAlignment(QtCore.Qt.AlignCenter) # Устанавливаем позиционирование текста grid_layout.addWidget(title, 0, 0) # и добавляем его в размещение exit_action = QAction(«, self) # Создаём Action с помощью которого будем выходить из приложения exit_action.setShortcut(‘Ctrl+Q’) # Задаём для него хоткей # Подключаем сигнал triggered к слоту quit у qApp. # синтаксис сигналов и слотов в PyQt5 заметно отличается от того, # который используется Qt5 C++ exit_action.triggered.connect(qApp.quit) # Устанавливаем в панель меню данный Action. # Отдельного меню создавать пока не будем. file_menu = self.menuBar() file_menu.addAction(exit_action) if __name__ == «__main__»: import sys app = QtWidgets.QApplication(sys.argv) mw = MainWindow() mw.show() sys.exit(app.exec())
Отличия
if name = :
В приложениях на Python часто можно встретить следующую конструкцию:
if __name__ == «__main__»:
Крутая программа на PyQt5 Python | Графический интерфейс Python (Gui)
С помощью данной конструкции можно указать Python-скрипту, какой программный код исполнять в том случае, если он запускается как самостоятельное приложение. В случае же, если данный скрипт будет импортирован в другой скрипт, то программный код, который будет следовать за данной конструкцией, не будет вызван.
Синтаксис сигналов и слотов
В PyQt5 используется следующий синтаксис сигналов и слотов, который показан на примере использования QAction.
exit_action = QAction(«, self) # Создаём Action с помощью которого будем выходить из приложения exit_action.triggered.connect(qApp.quit)
Тогда как в Qt C++ тоже самое выглядело бы следующим образом:
QAction *exit = new QAction(«, this); connect(exit, QApplication::quit);
Python
Пожалуй, самое очевидное 😉
Здесь без комментариев.
Заключение
В результате получим программу следующего вида.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
- Привет Qt для Python
- Qt/C++ — Урок 068. Hello World с использованием системы сборки CMAKE в CLion
- PyQt5 — Урок 007. Работаем с QML QtQuick (Сигналы и слоты)
- PyQt5 — Урок 006. Работа с QTableWidget
- PyQt5 — Урок 005. Автодополнение для поля ввода с помощью QCompleter
- PyQt5 — Урок 004. Использование QSettings
- PyQt5 — Урок 003. QSystemTrayIcon — Как свернуть приложение в трей
- PyQt5 — Урок 001. QLineEdit IP Address
По статье задано2 вопрос(ов)
Подписка на обсуждение 2
Подписка на раздел 79
Вам это нравится? Поделитесь в социальных сетях!
Источник: evileg.com
Первые программы на PyQt5 [Урок 2]
7 марта 2015 г.
Archy
Просмотров: 70939
RSS
12
Изучение PyQt5
PyQt, PyQt5, QApplication, QIcon, QPushButton, QtCore, QWidget, изучить PyQt5, примеры PyQt
В этой части руководства PyQt5
PyQt5 для начинающих
Привет, Хабр! Сегодня я вас хочу научить делать интерфейс на Python 3Hello, world») # заголовок окна self.move(300, 300) # положение окна self.resize(200, 200) # размер окна self.lbl = QLabel(‘Hello, world. ‘, self) self.lbl.move(30, 30) if __name__ == «__main__»: app = QApplication(sys.argv) win = MainWindow() win.show() sys.exit(app.exec_())
Когда вы запустите, должна получится примерно такая картина:
Меняем шрифт надписи
А теперь поменяем шрифт надписи. Теперь код станет таким:
from PyQt5.QtWidgets import * from PyQt5.QtGui import * import sys class MainWindow(QMainWindow): # главное окно def __init__(self, parent=None): super().__init__(parent) self.setupUi() def setupUi(self): self.setWindowTitle(«Hello, world») # заголовок окна self.move(300, 300) # положение окна self.resize(200, 200) # размер окна self.lbl = QLabel(‘Hello, world. ‘, self) self.lbl.move(30, 30) self.font = QFont() # создаём объект шрифта self.font.setFamily(«Rubik») # название шрифта self.font.setPointSize(12) # размер шрифта self.font.setUnderline(True) # подчёркивание self.lbl.setFont(self.font) # задаём шрифт метке if __name__ == «__main__»: app = QApplication(sys.argv) win = MainWindow() win.show() sys.exit(app.exec_())
Пример рассчитан на то, что у вас уже установлен шрифт Rubik от Google Fonts. Если нет, его всегда можно скачать отсюда.
Более продвинутая разметка с XHTML
А теперь добавим XHTML. Например, так:
from PyQt5.QtWidgets import * import sys class MainWindow(QMainWindow): # главное окно def __init__(self, parent=None): super().__init__(parent) self.setupUi() def setupUi(self): self.setWindowTitle(«Hello, world») # заголовок окна self.move(300, 300) # положение окна self.resize(200, 200) # размер окна self.lbl = QLabel(‘Hello, world. 123’, self) self.lbl.move(30, 30) if __name__ == «__main__»: app = QApplication(sys.argv) win = MainWindow() win.show() sys.exit(app.exec_())
Те, кто хотя бы немного знают XHTML, заметят, что надпись Hello сделана курсивом, слово world — жирным, а 123 — и вычеркнуто, и жирное.
Источник: habr.com