Samouczek PyQt5 z przykładami: Projektowanie GUI przy użyciu PyQt w Python
Co to jest PyQt?
PyQt .Name jest powiązaniem pythonowym zestawu narzędzi widget-toolkit typu open-source Qt, który działa również jako framework do tworzenia aplikacji wieloplatformowych. Qt jest popularnym C++ framework do pisania aplikacji GUI dla wszystkich głównych platform stacjonarnych, mobilnych i wbudowanych (obsługuje Linux, Windows, System operacyjny Mac, Android, iOS, Raspberry Pi i inne).
PyQt to darmowe oprogramowanie opracowane i utrzymywane przez Riverbank Computing, firmę z siedzibą w Anglii, natomiast Qt jest rozwijane przez fińską firmę The Qt Company.
Funkcje PyQT
Oto ważne cechy PyQt:
Naucz się PyQt, który składa się z ponad sześciuset klas obejmujących szereg funkcji, takich jak
- Graficzne interfejsy użytkownika
- Bazy danych SQL
- Zestawy narzędzi internetowych
- przetwarzanie XMLa
- Sieci
Funkcje te można łączyć w celu tworzenia zaawansowanych interfejsów użytkownika, a także samodzielnych aplikacji. Wiele dużych firm ze wszystkich branż korzysta z Qt. Oto niektóre przykłady: LG, Mercedes, AMD, Panasonic, Harman itp.
Wersje PyQt
PyQt jest dostępny w dwóch wersjach: PyQt4 i PyQt5. PyQt4 zapewnia kod klejący do wiązania wersji 4.xi 5.x frameworka Qt, podczas gdy PyQt5 zapewnia wiązanie tylko dla wersji 5.x. W rezultacie PyQt5 nie jest wstecznie kompatybilny z przestarzałymi modułami starszej wersji. W tym samouczku Qt GUI, PyQt5 zostanie użyty do demonstracji przykładów. Oprócz tych dwóch wersji,
Riverbank Computing zapewnia również PyQt3D — powiązania Pythona dla frameworka Qt3D. Qt3D to framework aplikacji służący do tworzenia systemów symulacyjnych w czasie rzeczywistym z renderowaniem 2D/3D.
Jak zainstalować PyQt5
W tym samouczku PyQt5 zobaczymy dwa sposoby instalacji PyQt:
- Korzystanie z plików Wheel
- Budowanie i instalacja ze źródła
Qt (wymawiane „cute”) to złożony system, a baza kodu PyQt zawiera skompilowane C++ oraz Python kod pod maską. W rezultacie jest to skomplikowany proces budowania i instalowania go ze źródła w porównaniu do innych bibliotek Pythona. Możesz jednak łatwo zainstalować PyQt5 za pomocą kółek.
Montaż z kołami
Koła to nowy standard Python format pakowania i dystrybucji. Mówiąc prościej, koło to archiwum ZIP o specjalnej nazwie i .co rozszerzenie pliku. Koła można zamontować za pomocą pip (Pythonmenedżer pakietów), który jest domyślnie dołączony do najnowszych wersji Python.
Więc jeśli masz Python 3.4 lub nowszy zainstalowany, masz już pip. Jeśli jednak używasz starszej wersji Python, musisz pobrać i zainstalować pip przed kontynuowaniem. Instrukcji na ten temat możesz poszukać pod tym linkiem: https://pypi.org/project/pip/.
Aby zainstalować PyQt5,
Krok 1) Otwórz wiersz polecenia.
Otwórz wiersz poleceń lub PowerShell w swoim Windows maszyna.
Krok 2) Wpisz poniższy tekst.
pip install PyQt5
Krok 3) Instalacja zakończyła się sukcesem.
Ten krok w tym samouczku PyQt5 spowoduje pobranie pakietu whl PyQt5 (około 50 MB) i zainstalowanie go w systemie.
Alternatywnie możesz także pobrać plik Windows binarny dla wersji Pythona zainstalowanej na Twoim komputerze.
Po zakończeniu przejdź do następnej sekcji tego samouczka PyQt5, aby napisać pierwszą aplikację GUI.
Podstawowy PyQt Concepts i Programy
Teraz, gdy pomyślnie zainstalowałeś PyQt5 na swoim komputerze, możesz pisać Python Aplikacje do projektowania GUI.
Zacznijmy od prostej aplikacji w tym samouczku PyQt5, która wyświetli puste okno na ekranie.
Odpal swojego Pythona IDLE i wpisz:
Program 1
import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == "__main__": app = QApplication(sys.argv) w = QWidget() w.resize(300,300) w.setWindowTitle("Guru99") w.show() sys.exit(app.exec_())
Zapisz jako app.py (nazwa nie ma znaczenia) i naciśnij F5, aby uruchomić program. Alternatywnie, po prostu kliknij dwukrotnie zapisany plik, aby uruchomić aplikację. Jeśli zrobiłeś wszystko poprawnie, otworzy się nowe okno z tytułem Guru99, jak pokazano poniżej.
Świetnie! To działa. Nie jest to dużo, ale wystarczy, żeby ogarnąć podstawy. Teraz, w tym samouczku PyQt, przyjrzyjmy się szczegółowo, co robi każda linia w twoim programie.
from PyQt5.QtWidgets import QApplication, QWidget
Ta instrukcja importuje wszystkie moduły potrzebne do utworzenia GUI do bieżącej przestrzeni nazw. Moduł QtWidgets zawiera wszystkie główne widżety, których będziesz używać w tym przypadku Python Poradnik Qt.
app = QApplication(sys.argv)
Tutaj tworzysz obiekt klasy QApplication. Ten krok jest koniecznością dla PyQt5; każda aplikacja interfejsu użytkownika musi utworzyć instancję QApplication, jako swego rodzaju punkt wejścia do aplikacji. Jeśli go nie utworzysz, zostaną pokazane błędy.
sys.argv to lista parametrów wiersza poleceń, które można przekazać do aplikacji podczas uruchamiania jej przez powłokę lub podczas automatyzacji interfejsu.
W tym przykładzie PyQt5 nie przekazałeś żadnych argumentów do QApplications. Dlatego możesz również zastąpić go poniższym kodem i nawet nie musisz importować modułu sys.
app = QApplication([])
w = QWidget()
Następnie tworzymy obiekt klasy QWidget. QWidget jest klasą bazową wszystkich obiektów UI w Qt, a praktycznie wszystko, co widzisz w aplikacji, jest widżetem. Obejmuje to okna dialogowe, teksty, przyciski, paski itd. Cechą, która pozwala na projektowanie złożonych interfejsów użytkownika, jest to, że widżety mogą być zagnieżdżane, tj. możesz mieć widżet wewnątrz widżetu, który znajduje się wewnątrz kolejnego widżetu. Zobaczysz to w działaniu w następnej sekcji.
w.resize(300,300)
Metoda resize klasy QWidget umożliwia ustawienie wymiarów dowolnego widgetu. W tym przypadku zmieniłeś rozmiar okna na 300 na 300 pikseli.
W tym miejscu należy pamiętać, że widżety mogą być zagnieżdżane razem, najbardziej zewnętrzny widżet (tzn. widżet bez elementu nadrzędnego) nazywany jest Oknem.
w.setWindowTitle("Guru99")
Metoda setWindowTitle() umożliwia przekazanie ciągu znaków jako argumentu, który ustawi tytuł okna na przekazany ciąg. W przykładzie PyQt5 na pasku tytułu wyświetli się Guru99.
w.show()
show() po prostu wyświetla widżet na ekranie monitora.
sys.exit(app.exec_())
Metoda app.exec_() uruchamia Qt/C++ pętla zdarzeń. Jak wiadomo, PyQt jest w dużej mierze napisany C++ i używa mechanizmu pętli zdarzeń do implementacji równoległego wykonywania. app.exec_() przekazuje kontrolę do Qt, który zamknie aplikację tylko wtedy, gdy użytkownik zamknie ją z GUI. Dlatego ctrl+c nie zamknie aplikacji, jak w innych programach Python. Ponieważ Qt ma kontrolę nad aplikacją, zdarzenia Pythona nie są przetwarzane, chyba że ustawimy je w aplikacji. Należy również zauważyć, że metoda exec ma podkreślenie w nazwie; dzieje się tak, ponieważ exec() było już słowem kluczowym w Pythonie, a podkreślenie rozwiązuje konflikt nazw.
Poza pustymi oknami
W poprzedniej sekcji widziałeś jak stworzyć podstawowy widget w Qt. Nadszedł czas na stworzenie bardziej zaangażowanych interfejsów, z którymi użytkownicy będą mogli naprawdę wchodzić w interakcję. Ponownie odpal swój IDLE i napisz poniższe.
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox def dialog(): mbox = QMessageBox() mbox.setText("Your allegiance has been noted") mbox.setDetailedText("You are now a disciple and subject of the all-knowing Guru") mbox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) mbox.exec_() if __name__ == "__main__": app = QApplication(sys.argv) w = QWidget() w.resize(300,300) w.setWindowTitle("Guru99") label = QLabel(w) label.setText("Behold the Guru, Guru99") label.move(100,130) label.show() btn = QPushButton(w) btn.setText('Beheld') btn.move(110,150) btn.show() btn.clicked.connect(dialog) w.show() sys.exit(app.exec_())
Zapisz plik jako appone.py lub cokolwiek chcesz i naciśnij F5, aby uruchomić program. Jeśli nie popełniłeś żadnych błędów, IDLE otworzy nowe okno z tekstem i przyciskiem, jak pokazano poniżej.
- Po kliknięciu przycisku w pierwszym oknie otworzy się nowe pole wiadomości zawierające napisany przez Ciebie tekst.
- Teraz możesz kliknąć przycisk Ukryj szczegóły/Pokaż szczegóły, aby przełączać widoczność dodatkowego tekstu.
Jak widać, ponieważ nie ustawiliśmy tytułu okna w polu wiadomości, sam Python nadał mu domyślny tytuł.
Teraz, gdy już działa, przyjrzyjmy się dodatkowemu kodowi, który dodałeś do poprzedniego przykładu PyQt5.
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox
Spowoduje to zaimportowanie większej liczby widżetów, których użyłeś w przykładach PyQt5, a mianowicie QLabel, QPushButton i QMessageBox.
def dialog(): mbox = QMessageBox() mbox.setText("Your allegiance has been noted") mbox.setDetailedText("You are now a disciple and subject of the all-knowing Guru") mbox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) mbox.exec_()
Tutaj zdefiniowałeś metodę o nazwie dialog, która tworzy widżet pola wiadomości i ustawia tekst na przyciskach oraz innych polach.
Metoda dialogowa jest wywoływana z głównego bloku programu po naciśnięciu przycisku w konkretnym widgecie (w tym przypadku btn PushButton). Zdarzenie kliknięcia wywołane tym przyciskiem powoduje wykonanie tej funkcji. Taka funkcja nazywa się szczeliną w Qt i dowiesz się o niej więcej Sygnały oraz automatach w nadchodzących akapitach.
if __name__ == "__main__": app = QApplication(sys.argv) w = QWidget() w.resize(300,300) w.setWindowTitle("Guru99")
To jest główna sekcja aplikacji i podobnie jak w poprzednim przykładzie zaczynasz od utworzenia instancji QApplication, po której następuje prosty widget, czyli instancja QWidget.
label = QLabel(w) btn = QPushButton(w)
Dodałeś dwa nowe widżety w tej aplikacji: QLabel i QPushButton. QLabel służy do drukowania nieedytowalnego tekstu lub obiektów zastępczych wewnątrz widżetu, natomiast QPushButton służy do tworzenia klikalnego przycisku.
Najważniejszą rzeczą, na którą należy zwrócić uwagę, jest to, że podczas tworzenia obiektów label i btn przekazujesz obiekt okna (w) konstruktorom QLabel i QPushButton. Tak działa zagnieżdżanie w PyQt5. Aby utworzyć widget wewnątrz innego widgetu, przekazujesz referencję widgetu nadrzędnego do konstruktora dziecka.
label.move(100,130) btn.move(110,150)
move() służy do ustawiania pozycji widżetu względem jego widżetu nadrzędnego. W pierwszym przypadku etykieta zostanie przesunięta o 100px od lewej i 130px od góry okna.
Podobnie przycisk zostanie umieszczony 110px od lewej i 150px od góry okna. Ten przykład jest prostym sposobem uzyskania układów i generalnie nie jest używany w produkcji; zamieszczono je tutaj wyłącznie w celach edukacyjnych. Qt obsługuje różne układy, które szczegółowo zobaczysz w kolejnych sekcjach tego samouczka PyQt.
btn.clicked.connect(dialog)
Na koniec jest to przykład sygnałów i szczelin w Qt. W aplikacjach opartych na GUI funkcje są wykonywane na podstawie działań wykonywanych przez użytkownika, takich jak najechanie kursorem na element lub kliknięcie przycisku. Działania te nazywane są wydarzenia. Przypomnijmy, że metoda app.exec_() przekazuje kontrolę do Qt zdarzenie-pętla. Do tego właśnie służy pętla zdarzeń: do nasłuchiwania zdarzeń i wykonywania w odpowiedzi działań.
Za każdym razem, gdy wystąpi jakieś zdarzenie, np. kliknięcie przycisku przez użytkownika, odpowiedni widżet Qt wywołuje a sygnał. Sygnały te można podłączyć funkcje Pythona (jak funkcja dialogowa w tym przykładzie), tak aby funkcja była wykonywana po wyzwoleniu sygnału. Funkcje te nazywane są automatach w żargonie Qt.
Następnie podstawowa składnia wyzwalania funkcji szczeliny w odpowiedzi na sygnał ze zdarzenia jest następująca
widget.signal.connect(slot)
Co oznacza, że kiedykolwiek a sygnał jest wyzwalany przez a widget, podłączony otwór funkcja zostanie wykonana. Podsumowując, sygnały i szczeliny są używane przez Qt do komunikacji między obiektami i ułatwiają ponowne użycie komponentów oraz interaktywność.
Teraz, gdy wiesz, jak zagnieżdżać widżety i implementować interakcje przy użyciu sygnałów i gniazd, oto lista przydatnych widżetów i innych klas, których możesz używać w swoich aplikacjach PyQt.
Komponenty i widżety
W PyQt dostępna jest duża liczba widżetów do tworzenia aplikacji GUI. Jednakże w przypadku PyQt5 nastąpiło przetasowanie klas w różnych modułach i zmiany w licencjach.
Dlatego ważne jest, aby mieć ogólny pogląd na strukturę PyQt5. W tej sekcji zobaczysz, jak PyQt5 jest zorganizowany wewnętrznie i poznasz różne moduły, biblioteki i klasy API udostępniane przez PyQt5.
Struktura katalogów PyQt5
Są to podstawowe moduły używane przez Pythonwiązanie Qt, w szczególności PyQt5.
- Qt: Łączy wszystkie wymienione poniżej klasy/moduły w jeden moduł. Znacząco zwiększa ilość pamięci wykorzystywanej przez aplikację. Jednak łatwiej jest zarządzać frameworkiem, importując tylko jeden moduł.
- QtCore: Zawiera podstawowe klasy niegraficzne używane przez inne moduły. W tym miejscu implementowana jest pętla zdarzeń Qt, sygnały, łączność między gniazdami itp.
- QtWidgets: Zawiera większość widżetów dostępnych w Pyqt5.
- QtGui .Name: Zawiera komponenty GUI i rozszerza moduł QtCore.
- Sieć Qt: Zawiera klasy używane do implementowania programowania sieciowego poprzez Qt. Obsługuje serwery TCP, gniazda TCP, gniazda UDP, obsługę SSL, sesje sieciowe i wyszukiwania DNS.
- QtMultimedia zapewnia funkcjonalność multimedialną niskiego poziomu.
- QtSql: implementuje integrację baz danych dla baz danych SQL. Obsługuje ODBC, MySQL, Oracle, SQLite, PostgreSQL.
Widżety PyQt5
Oto lista najczęściej używanych widżetów w PyQt5
- QLineEdit: Jest to pole wejściowe, które umożliwia użytkownikowi wprowadzenie jednego wiersza tekstu.
line = QLineEdit()
- QRPrzycisk Radia: Jest to pole wejściowe z przyciskiem do wyboru, podobnym do przycisków opcji w HTML.
rad = QRadioButton("button title") rad.setChecked(True) #to select the button by default.
- QComboBox: Służy do wyświetlania rozwijanego menu z listą elementów do wyboru.
drop = QComboBox(w) drop.addItems(["item one", "item two", "item three"])
- QSprawdźBox: Wyświetla przed etykietą kwadratowe pole wyboru, które zostaje zaznaczone, jeśli jest wybrane, podobnie jak przyciski opcji.
check = QCheckBox("button title")
- QMenuBar: wyświetla poziomy pasek menu u góry okna. Do tego paska możesz dodawać jedynie obiekty klasy QMenu. Te obiekty QMenu mogą ponadto zawierać ciągi znaków, obiekty QAction lub inne obiekty QMenu.
- QToolBar: Jest to poziomy pasek lub panel, który można przesuwać w obrębie okna. Może zawierać przyciski i inne widżety.
- Karta Q: służy do podziału zawartości okna na wiele stron, do których można uzyskać dostęp za pośrednictwem różnych zakładek na górze widżetu. Składa się z dwóch sekcji: paska zakładek i strony zakładek.
- QScrollBar: Służy do tworzenia pasków przewijania, które umożliwiają użytkownikowi przewijanie okna w górę i w dół. Składa się z ruchomego suwaka, ścieżki suwaka i dwóch przycisków do przewijania suwaka w górę lub w dół.
scroll = QScrollBar()
- QSplitter: Rozdzielacze służą do oddzielania zawartości okna, dzięki czemu widżety są odpowiednio pogrupowane i nie wyglądają na zagracone. QSplitter jest jednym z głównych programów obsługi układu dostępnych w PyQt5 i służy do dzielenia zawartości zarówno w poziomie, jak i w pionie.
- QDock: Widget dokowania to podokno z dwiema właściwościami:
- Można go przenosić w obrębie głównego okna i
- Można go zadokować poza oknem nadrzędnym w innym miejscu na ekranie.
Układy i motywy
W poprzednich przykładach PyQt5 używałeś jedynie metod move() i resize() do ustawiania pozycji widżetów w swoim GUI.
Jednak PyQt ma solidny silnik zarządzania układem, którego można używać do tworzenia zaawansowanych interfejsów użytkownika dla aplikacji. W tej sekcji poznasz dwie ważne klasy używane w Qt do tworzenia układów i zarządzania nimi.
- QBoxukład
- Układ QGrid
QBoxukład
QBoxUkład służy do wyrównywania widżetów podrzędnych układu w rzędzie poziomym lub pionowym. Dwie klasy interesów, które dziedziczą po QBoxUkład to:
- QHBoxUkład: używany do poziomego ułożenia widżetów podrzędnych.
- QVBoxUkład: używany do pionowego ustawiania widżetów podrzędnych.
Na przykład tak trzy przyciski są wyrównane z QHBoxUkład będzie wyglądał.
import sys from PyQt5.QtWidgets import * if __name__ == "__main__": app = QApplication([]) w = QWidget() w.setWindowTitle("Musketeers") btn1 = QPushButton("Athos") btn2 = QPushButton("Porthos") btn3 = QPushButton("Aramis") hbox = QHBoxLayout(w) hbox.addWidget(btn1) hbox.addWidget(btn2) hbox.addWidget(btn3) w.show() sys.exit(app.exec_())
A tak będą wyglądać w QVBoxUkład.
import sys from PyQt5.QtWidgets import * if __name__ == "__main__": app = QApplication([]) w = QWidget() w.setWindowTitle("Musketeers") btn1 = QPushButton("Athos") btn2 = QPushButton("Porthos") btn3 = QPushButton("Aramis") vb = QVBoxLayout(w) vb.addWidget(btn1) vb.addWidget(btn2) vb.addWidget(btn3) w.show() sys.exit(app.exec_())
Jedyną funkcją wymagającą wyjaśnienia w tym miejscu jest metoda addWidget(). Służy do wstawiania widżetów do formatu HBox lub VBox układ. Jest również używany w innych układach, gdzie przyjmuje inną liczbę parametrów, jak zobaczysz w następnej sekcji. Widżety pojawią się w układzie w kolejności, w jakiej je wstawisz.
Układ QGrid
QGridLayout służy do tworzenia interfejsów, w których widżety są ułożone w formie siatki (jak macierz lub tablica 2D). Aby wstawić elementy w układzie siatki, można użyć reprezentacji macierzowej w celu zdefiniowania liczby wierszy i kolumn w siatce, a także położenia tych elementów.
Na przykład, aby utworzyć siatkę 3*3 (czyli siatkę z trzema wierszami i trzema kolumnami), należy napisać następujący kod:
Import sys from PyQt5.QtWidgets import * if __name__ == "__main__": app = QApplication([]) w = QWidget() grid = QGridLayout(w) for i in range(3): for j in range(3): grid.addWidget(QPushButton("Button"),i,j) w.show() sys.exit(app.exec_())
To będzie wyjście:
Metoda addWidget() w układzie siatki przyjmuje następujące argumenty:
- Obiekt widgetu, który chcesz dodać do siatki
- Współrzędna x obiektu
- Współrzędna y obiektu
- Rozpiętość wierszy (domyślnie = 0)
- Rozpiętość kolumny (domyślnie=0)
Aby lepiej to zrozumieć, możesz ręcznie wstawić każdy widget, jak pokazano poniżej
import sys from PyQt5.QtWidgets import * if __name__ == "__main__": app = QApplication([]) w = QWidget() grid = QGridLayout(w) grid.addWidget(QPushButton("Button one"),0,0) grid.addWidget(QPushButton("Button two"),0,1) grid.addWidget(QPushButton("Button three"),1,0) grid.addWidget(QPushButton("Button four"),1,1) w.show() sys.exit(app.exec_())
Tak będzie wyglądać siatka:
Możesz także przekazać parametry rowspan i colspan do metody addWidget(), aby objąć więcej niż jeden wiersz lub kolumnę.
Na przykład,
grid.addWidget(QPushButton("Button five"),2,0,1,0)
Spowoduje to utworzenie przycisku rozciągającego się na obie kolumny.
Motywy
PyQt5 zawiera kilka wbudowanych motywów, których możesz używać w swoich aplikacjach. The ustawStyl() Metoda wywoływana w instancji QApplication służy do ustawiania konkretnego motywu dla aplikacji.
Na przykład dodanie poniższego wiersza kodu spowoduje zmianę motywu aplikacji z domyślnego na Fusion
app.setStyle("Fusion")
Tak będzie wyglądał poprzedni przykład w motywie Fusion
Inną przydatną funkcją do tworzenia motywów dla aplikacji jest metoda setPalette(). Oto kod umożliwiający zmianę koloru różnych widżetów za pomocą metody setPalette().
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import * from PyQt5.QtGui import QPalette if __name__ == "__main__": app = QApplication([]) app.setStyle("Fusion") qp = QPalette() qp.setColor(QPalette.ButtonText, Qt.black) qp.setColor(QPalette.Window, Qt.black) qp.setColor(QPalette.Button, Qt.gray) app.setPalette(qp) w = QWidget() grid = QGridLayout(w) grid.addWidget(QPushButton("Button one"),0,0) grid.addWidget(QPushButton("Button two"),0,1) grid.addWidget(QPushButton("Button three"),1,0) grid.addWidget(QPushButton("Button four"),1,1) w.show() sys.exit(app.exec_())
Oto wynik.
Aby użyć metody setPalette(), należy najpierw zdefiniować paletę. Odbywa się to poprzez utworzenie obiektu klasy QPalette.
qp = QPalette()
Zauważ, że klasa QPalette należy do modułu QtGui i aby to zadziałało, musisz ją zaimportować. Po utworzeniu obiektu QPalette użyj metody setColor() do przekazania nazwy widżetu, którego kolor chcesz zmienić, oraz koloru, który chcesz ustawić.
qp.setColor(QPalette.Window, Qt.black)
Spowoduje to zmianę koloru okna na czarny. Po zdefiniowaniu schematu kolorów użyj funkcji setPalette(), aby zastosować paletę do swojej aplikacji.
app.setPalette(qp)
To wszystko, co musisz zrobić, jeśli chcesz utworzyć podstawowe motywy dla swojej aplikacji. PyQt pozwala także używać arkuszy stylów do definiowania wyglądu widżetów. Jeśli znasz CSS, możesz łatwo zdefiniować zaawansowane style dla swojej aplikacji za pomocą arkuszy stylów Qt.
Podsumowanie
- PyQt to powiązanie języka Python dla C++ Struktura interfejsu użytkownika, Qt.
- PyQt4 i PyQt5 to dwie główne wersje opracowane przez Riverbank Computing.
- Główne moduły frameworka PyQt to:
- Qt
- QtCore
- QtWidgets
- QtGui .Name
- QtSql
- Sieć Qt
- PyQt obsługuje różne widżety, takie jak:
- przyciski
- Etykiety tekstowe
- Pola tekstowe
- Przyciski radiowe i pola wyboru
- Paski narzędzi i paski menu
- zestaw internetowy
- Tabs
- Docks
- W PyQt interaktywność jest realizowana za pomocą Sygnały oraz Gniazda.
- An wydarzenie to czynność wykonywana przez użytkownika w GUI (jak kliknięcie przycisku).
- A sygnał jest wywoływany przez odpowiedni widget, gdy wystąpi na nim zdarzenie.
- A otwór jest funkcją powiązaną z sygnałem i wykonywaną po podniesieniu sygnału.
- PyQt ma solidny silnik układu i obsługuje zaawansowane projektowanie układów i zarządzanie nimi. Oto dwa często używane schematy układu w PyQt:
- Box układ
- Układ siatki
- Projektant PyQt umożliwia tworzenie niestandardowych motywów dla aplikacji GUI i ma wbudowaną obsługę arkuszy stylów.
- qtcreator Python może być używany do tworzenia interfejsów użytkownika, a także samodzielnych aplikacji.