Jak używać PYQT GUI Builder

Jak używać PYQT GUI Builder

PYQT to popularna biblioteka Python używana do łatwiejszego wdrażania aplikacji graficznych w Python. Ta biblioteka jest wyposażona w narzędzie do konstruktora GUI (graficzny interfejs użytkownika) Projektant QT. GUI można szybko zbudować w Pythonie za pomocą funkcji przeciągania i upuszczania tej biblioteki, chociaż to narzędzie nie ma obiektu debugowania, takiej jak Standard IDE. Ten samouczek pokazuje, jak zaimplementować GUI za pomocą klasy projektantów QT PYQT.

Wymagania wstępne

Musisz zainstalować narzędzie do projektanta QT przed ćwiczeniem przykładów podanych w tym samouczku. Uruchom następujące polecenia, aby zainstalować Projektant QT W twoim systemie:

$ sudo apt-get instaluj qttools5-devools
$ sudo apt-get instaluj QTTools5-dev

Otwórz projektanta QT

Uruchom następujące polecenie, aby zmienić bieżącą lokalizację katalogu na Projektant QT teczka.

$ cd/usr/lib/x86_64-Linux-gnu/qt5/bin/

Uruchom następujące polecenie, aby otworzyć aplikację Projektanta QT.

$ ./projektant

Jeśli Projektant QT został zainstalowany poprawnie, pojawi się następujące okno. Widżet Pole pokazane po lewej stronie okna głównego zawiera różne widżety, których można użyć do zaprojektowania interfejsu użytkownika aplikacji. Nowa forma Okno służy do utworzenia nowego okna za pomocą domyślnych przycisków. Okna pokazane po prawej stronie okna głównego zawierają informacje o widżetach, które można odczytać lub modyfikować.

Utwórz pierwszy formularz za pomocą projektanta QT

Aby rozpocząć projektowanie interfejsu aplikacji Python, klikniemy Tworzyć przycisk w poniższym oknie, aby otworzyć okno dialogowe z dwoma domyślnymi przyciskami.

Następnie zaprojektujemy formularz logowania za pomocą Etykieta, edycja tekstu i widżety przycisków. Okno dialogowe zostanie zapisane z loginem nazwy.interfejs użytkownika, który zostanie użyty później w skrypcie Python. Qobject Nazwa zostanie zmieniona na Logindialog używając Okno edytora właściwości tej aplikacji.

Za pomocą okna dialogowego logowania

Plik interfejsu użytkownika utworzony przez Projektant QT może być używane w skrypcie Python na dwa sposoby. Plik może być używany bezpośrednio w skrypcie Python lub przekonwertowanym pliku Python Projektant QT Plik może być używany w skrypcie Python. Oba sposoby korzystania z okna dialogowego Projektant QT są pokazane w poniższej sekcji samouczka.

Uruchom plik projektanta QT bezpośrednio

Moduł UIC biblioteki PYQT służy do ładowania pliku utworzonego przez projektanta QT i loadui () Metoda modułu UIC służy do ładowania pliku interfejsu użytkownika. Poniższy skrypt pokazuje, jak załadować Projektant QT plik o nazwie Zaloguj sie.UI że stworzyliśmy wcześniej. Niezbędne moduły są importowane na początku skryptu. Obiekt aplikacji jest tworzony za pomocą Qapplication (), i Projektant QT Plik jest ładowany za pomocą loadui () metoda. Następnie exec () Metoda jest wywoływana, aby rozpocząć pętlę zdarzeń aplikacji.

# Importuj moduł SYS
Import Sys
# Importuj qtwidgets i moduły UIC
z PYQT5 Import qtwidgets, UIC
# Utwórz obiekt aplikacji
App = qtwidgets.Qapplication (sys.Argv)
# Załaduj formularz GUI i wyświetl
okno = UIC.loadui („Zaloguj się.UI ”)
okno.pokazywać()
# Rozpocznij pętlę zdarzeń aplikacji lub okna dialogowego
App.exec ()

Poniższe okno dialogowe pojawi się po wykonaniu powyższego skryptu.

Uruchom plik interfejsu użytkownika, przekształcając w plik Python

Plik interfejsu użytkownika utworzony przez projektanta QT można przekonwertować na plik Python za pomocą Pyuic5 Komenda. Uruchom następujące polecenie, aby przekonwertować Zaloguj sie.UI plik do Forma loginu.py plik. Zaloguj sie.UI Plik musi być przechowywany w bieżącej lokalizacji, aby uruchomić następujące polecenie; W przeciwnym razie zostanie wygenerowany błąd.

$ PYUIC5 login.loginformu loginformu UI -O.py

Poniższy kod zostanie wygenerowany w Forma loginu.py plik po wykonaniu powyższego polecenia.

# -* -Kodowanie: UTF -8 -*-
# Implementacja formularza wygenerowana z odczytu pliku interfejsu użytkownika „logowanie.ui '
#
# Utworzone przez: Pyqt5 Ui Generator 5.12.3
#
# OSTRZEŻENIE! Wszystkie zmiany wprowadzone w tym pliku zostaną utracone!
z PYQT5 Import Qtcore, Qtgui, Qtwidgets
klasa UI_Logindialog (obiekt):
Def setupui (self, logindialog):
Logindialog.setObjectName („logindialog”)
Logindialog.Zmień rozmiar (400, 224)
samego siebie.TextEdit = qtwidgets.QTextedit (logindialog)
samego siebie.SMSEDIT.Setgeometria (QTCORE.QRECT (130, 70, 221, 31))
samego siebie.SMSEDIT.setObjectName („textEdit”)
samego siebie.TextEdit_2 = qtwidgets.QTextedit (logindialog)
samego siebie.Textedit_2.Setgeometria (QTCORE.QRECT (130, 120, 221, 31))
samego siebie.Textedit_2.setObjectName („textedit_2”)
samego siebie.etykieta = qtwidgets.Qlabel (logindialog)
samego siebie.etykieta.Setgeometria (QTCORE.QRECT (140, 20, 131, 31))
czcionka = qtgui.Qfont ()
czcionka.SetPointSize (18)
samego siebie.etykieta.setFont (czcionka)
samego siebie.etykieta.setObjectName („etykieta”)
samego siebie.etykieta_2 = qtwidgets.Qlabel (logindialog)
samego siebie.etykieta_2.Setgeometria (QTCORE.QRECT (36, 70, 81, 20))
samego siebie.etykieta_2.setObjectName („label_2”)
samego siebie.etykieta_3 = qtwidgets.Qlabel (logindialog)
samego siebie.etykieta_3.Setgeometria (QTCORE.QRECT (40, 120, 67, 17))
samego siebie.etykieta_3.setObjectName („label_3”)
samego siebie.btnlogin = qtwidgets.QPUSHBUTTON (logindialog)
samego siebie.Btnlogin.Setgeometria (QTCORE.QRECT (150, 170, 89, 25))
samego siebie.Btnlogin.setObjectName („btnlogin”)
samego siebie.btncancel = qtwidgets.QPUSHBUTTON (logindialog)
samego siebie.BtnCancel.Setgeometria (QTCORE.QRECT (250, 170, 89, 25))
samego siebie.BtnCancel.setObjectName („btncancel”)
samego siebie.retranslateui (logindialog)
QTCORE.QMetaObject.ConnectSlslotsByName (logindialog)
def retranslateui (self, logindialog):
_Translate = qtcore.QCoreApplication.Tłumaczyć
Logindialog.setWindowTitle (_Translate („logindialog”, „dialog”)))
samego siebie.etykieta.setText (_Translate („logindialog”, „formularz logowania”)))
samego siebie.etykieta_2.setText (_Translate („logindialog”, „nazwa użytkownika”)))
samego siebie.etykieta_3.setText (_Translate („logindialog”, „hasło”)))
samego siebie.Btnlogin.setText (_Translate („logindialog”, „login”))
samego siebie.BtnCancel.setText (_Translate („logindialog”, „anulowanie”))

Poniżej wyświetli się Zaloguj sie Okno dialogowe poprzez importowanie Forma loginu.py plik utworzony za pomocą Pyuic5 Komenda. Obiekt aplikacji jest tworzony za pomocą Qapplication (), a okno dialogowe logowania jest ładowane za pomocą setupui () metoda. Przycisk logowania jest przymocowany do loginclicked () Metoda sprawdzania, czy nazwa użytkownika i hasło pobrane od użytkownika są prawidłowe. Anulować przycisk jest przymocowany do anulowanie () metoda rezygnacji z aplikacji. exec () Metoda jest wywoływana, aby rozpocząć pętlę zdarzeń aplikacji.

# Importuj qtwidgets
z PYQT5 Importuj Qtwidgets
# Import Sys
Import Sys
# Importuj formularz logowania interfejs użytkownika
Importuj loginform
# Zdefiniuj klasę, aby skonfigurować interfejs użytkownika
klasa myApp (qtwidgets.QMainWindow, loginform.UI_LOGINDIALOG):
def __init __ (self, rodzic = brak):
Super (MyApp, ja).__init __ (rodzic)
# Załaduj formularz logowania
samego siebie.setupui (self)
# Metoda wywołania loginclicked ()
samego siebie.Btnlogin.kliknięte.Połącz (ja.loginclicked)
# Metoda Call Anuluccled ()
samego siebie.BtnCancel.kliknięte.Połącz (ja.anulowanie)
# Deklaruj metodę sprawdzania nazwy użytkownika i hasła, gdy przycisk logowania kliknie
def loginclicked (self):
Jeśli ja.SMSEDIT.toplaintext () == „admin” i self.Textedit_2.toplaintext () == „Superuser”:
Drukuj („Uwierzytelniony użytkownik”)
w przeciwnym razie:
Drukuj („Użytkownik nieautentyczny”)
# Zadeklaruj metodę zakończenia skryptu, gdy przycisk Anuluj kliknij
def ANCULCCLED (self):
Wyjście()
# Utwórz obiekt aplikacji
App = qtwidgets.Qapplication (sys.Argv)
# Utwórz obiekt klasy
Form = myApp ()
# Wyświetl formularz
formularz.pokazywać()
# Rozpocznij pętlę zdarzeń aplikacji lub okna dialogowego
App.exec ()

Poniższe okno dialogowe pojawi się po wykonaniu powyższego skryptu.


Jeśli użytkownik wprowadza niewłaściwą nazwę użytkownika lub hasło w Zaloguj sie formularz, wtedy następujące dane wyjściowe pojawią się po kliknięciu Zaloguj sie przycisk.


Jeśli użytkownik wprowadzi poprawną nazwę użytkownika i hasło w Zaloguj sie formularz, wtedy następujące dane wyjściowe pojawi się po kliknięciu Zaloguj sie przycisk.


Jeśli użytkownik kliknie Anulować przycisk w Zaloguj sie formularz, wtedy okno dialogowe zniknie.

Wniosek

Ten samouczek pokazał, jak zainstalować Projektant QT i jak zaprojektować prosty formularz za pomocą tej aplikacji. Samouczek pokazał również, jak załadować okno dialogowe interfejsu użytkownika bezpośrednio i po przekształceniu go w skrypt Python pokazano w drugiej części tego samouczka. Mamy nadzieję, że ten artykuł pomógł ci lepiej zrozumieć wykorzystanie projektanta QT do budowy i korzystania z GUI w aplikacjach.