Search
V zásadě existují dvě možnosti, jak v Pythonu používat Qt framework: PyQt a PySide. Mají téměř totožné API, liší se v licenci a úrovni dokumentace.
python3 -m pip install --upgrade pip python3 -m pip install PyQt5
from PyQt5 import QtWidgets app = QtWidgets.QApplication([]) button = QtWidgets.QPushButton("Klikni na mě") button.setWindowTitle("První aplikace") button.clicked.connect(app.quit) button.show() app.exec()
Pro vykreslování GUI komponent slouží v Qt widgety.
Předhled komponent, použitých v příkladu (widgets_example.py)
V aplikacích se zpravidla používá více komponent, které je třeba vhodným způsobem uspořádat. K tomu slouží layouty, zejména horizontální QHBoxLayout a vertikální QVBoxLayout.
Layout je nutné vložit do vhodného kontejneru - k tomu může dobře posloužit např. obecná třída QWidget.
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout app = QApplication([]) window = QWidget() layout = QVBoxLayout() layout.addWidget(QPushButton('Top')) layout.addWidget(QPushButton('Bottom')) window.setLayout(layout) window.show() app.exec()
Komponenty lze v Qt stylovat pomocí jazyka podobnému CSS (Cascade StyleSheets), známému z HTML. Styl může být sdílen pro celou aplikaci (tj. např. pro množiny komponent), nebo nastaven zvlášť pro každý prvek.
from PyQt5.QtWidgets import QApplication, QPushButton app = QApplication([]) app.setStyleSheet("QPushButton { margin: 10ex; }") button = QPushButton('Hello World') button.show() app.exec()
from PyQt5.QtWidgets import * app = QApplication([]) button = QPushButton('Click') def on_button_clicked(): alert = QMessageBox() alert.setText('You clicked the button!') alert.exec() button.clicked.connect(on_button_clicked) button.show() app.exec()
Časovač QTimer je komponenta určená k odměřování času, ať už v pravidelných intervalech nebo jednorázově (singleShot)
from PyQt5.QtWidgets import *