pyqt учебник
Начало работы с pyqt
Поиск…
замечания
PyQt - это привязка Python к популярной межплатформенной платформе приложений Qt, обычно используемой для создания графических приложений. PyQt4 поддерживает Qt4, а PyQt5 поддерживает Qt5. Он работает на всех платформах, поддерживаемых Qt (Windows, OS X, Linux, iOS и Android). Связи реализуются как набор модулей и классов Python.
Для получения дополнительной информации см. Веб-сайт PyQt .
Установка PyQt4
Предлагаемый способ установки
Windows : загрузите и запустите файл двоичной установки .
Linux (Debian) : запустите эту команду в командной строке:
$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer
OS X : запустите эту команду в командной строке:
$ brew install pyqt
Установить вручную
Вы также можете загрузить исходный код вручную здесь , а затем установить и настроить его самостоятельно.
Проверьте свою установку
Если pyqt установлен правильно, вы сможете запустить команду pyuic4
. Если он установлен правильно, вы увидите следующую ошибку:
$ pyuic4
Error: one input ui-file must be specified
Установка завершена
Теперь вы установили библиотеку PyQt4. Также рядом с PyQt4 были установлены два полезных приложения:
- Qt Designer: приложение для дизайна «drag & drop» графических интерфейсов (создает файлы
.ui
) - pyuic4: приложение командной строки, которое может конвертировать файлы
.ui
в код Python.
Основное приложение
В следующем примере показано основное основное окно графического интерфейса пользователя с виджлетом метки, панелью инструментов и панель состояния с использованием PyQt4.
import sys
from PyQt4 import QtGui
class App(QtGui.QApplication):
def __init__(self, sys_argv):
super(App, self).__init__(sys_argv)
self.build_ui()
def build_ui(self):
# build a main GUI window
self.main_window = QtGui.QMainWindow()
self.main_window.setWindowTitle('App')
self.main_window.show()
# add a label to the main window
label = QtGui.QLabel('Label')
self.main_window.setCentralWidget(label)
# add a toolbar with an action button to the main window
action = QtGui.QAction('Toolbar action', self)
toolbar = QtGui.QToolBar()
toolbar.addAction(action)
self.main_window.addToolBar(toolbar)
# add a status bar to the main window
status_bar = QtGui.QStatusBar()
status_bar.showMessage('Status bar')
self.main_window.setStatusBar(status_bar)
if __name__ == '__main__':
app = App(sys.argv)
sys.exit(app.exec_())
Привет, мир
Этот базовый код запустит окно «Привет мир» с помощью PyQt4:
import sys
from PyQt4 import QtGui
# create instance of QApplication
app = QtGui.QApplication(sys.argv)
# create QLabel, without parent it will be shown as window
label = QtGui.QLabel('Hello world!')
label.show()
# start the execution loop of the application
sys.exit(app.exec_())
Это тот же код с использованием PyQt5.
import sys
from PyQt5 import QtWidgets
# create instance of QApplication
app = QtWidgets.QApplication(sys.argv)
# create QLabel, without parent it will be shown as window
label = QtWidgets.QLabel('Hello world!')
label.show()
# start the execution loop of the application
sys.exit(app.exec_())
Простой пример перетаскивания
Сделайте простое графическое приложение за 3 простых шага.
1. Дизайн
Откройте Qt Creator
, создайте новый проект и создайте свой дизайн. Сохраните результат как .ui
файл (здесь: mainwindow.ui
).
2. Создайте соответствующий файл .py
Теперь вы можете создать файл .py из вашего .ui-файла, который вы создали на предыдущем шаге. Введите в командной строке следующее:
$ pyuic4 mainwindow.ui -o GUI.py
Если вышеприведенная строка успешно GUI.py
файл GUI.py
3. Коды Python
Вы можете добавить свой собственный код (например, сигналы и слоты) в файл GUI.py
но лучше добавить их в новый файл. Если вы хотите внести изменения в свой графический интерфейс, файл GUI.py
будет перезаписан. Поэтому в большинстве случаев лучше использовать другой файл для добавления функциональности.
Назовем новый файл main.py
from PyQt4 import QtGui
import sys
import GUI # Your generated .py file
class MyApp(QtGui.QMainWindow, GUI.Ui_MainWindow):
def __init__(self, parent=None):
super(ExampleApp, self).__init__(parent)
self.setupUi(self)
# Connect a button to a function
self.btn_run.clicked.connect(self.run)
def run(self):
# Write here what happens after the button press
print("run")
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
form = ExampleApp()
form.show()
app.exec_()
Теперь вы можете запустить main.py
и посмотреть свой графический интерфейс.