Hvordan bruke Pyqt Gui Builder

Hvordan bruke Pyqt Gui Builder

Pyqt er et populært Python -bibliotek som brukes til å implementere grafiske applikasjoner i Python lettere. Dette biblioteket kommer med et GUI (grafisk brukergrensesnitt) byggherrerverktøy som heter QT -designer. GUI kan bygges raskt i Python ved hjelp av dra-og-slipp-funksjonen i dette biblioteket, selv om dette verktøyet ikke har noe feilsøkingsanlegg som standard IDE. Denne opplæringen viser deg hvordan du implementerer GUI ved hjelp av QT Designer Class of Pyqt.

Forutsetninger

Du må installere QT Designer Tool før du øver på eksemplene som er gitt i denne opplæringen. Kjør følgende kommandoer for å installere QT -designer på systemet ditt:

$ sudo apt-get installer qttools5-dev-tools
$ sudo apt-get installer qttools5-dev

Åpne QT -designeren

Kjør følgende kommando for å endre gjeldende katalogsted til QT -designer mappe.

$ CD/usr/lib/x86_64-Linux-GNU/QT5/BIN/

Kjør følgende kommando for å åpne QT Designer -applikasjonen.

$ ./designer

Hvis QT -designer har blitt installert riktig, vil følgende vindu vises. De Widget Boks vist på venstre side av hovedvinduet inneholder forskjellige widgeter som du kan bruke til å designe brukergrensesnittet til applikasjonen. De Ny form Vindu brukes til å opprette et nytt vindu ved hjelp av standardknappene. Vinduene som vises på høyre side av hovedvinduet gir informasjon om widgets som kan leses eller endres.

Lag den første formen ved hjelp av QT -designeren

For å begynne å designe grensesnittet for Python -applikasjonen, vil vi klikke på Skape Knapp i følgende vindu for å åpne dialogboksen med to standardknapper.

Deretter vil vi designe et påloggingsskjema ved hjelp av Etikett, tekstredigering og trykker på knappene. Dialogboksen vil bli lagret med navn innlogging.UI, som vil bli brukt senere i Python -skriptet. De QObject Navnet blir endret til Logindialog bruker Eiendomsredaktørvindu av denne applikasjonen.

Bruke dialogboksen Innlogging

Brukergrensesnittfilen opprettet av QT -designer kan brukes i Python -skriptet på to måter. Filen kan brukes direkte i Python -skriptet, eller den konverterte Python -filen til QT -designer Fil kan brukes i Python -skriptet. Begge måtene å bruke dialogboksen til QT -designer vises i den følgende delen av opplæringen.

Kjør QT Designer -fil direkte

UIC -modulen til PYQT -biblioteket brukes til å laste inn filen som er opprettet av QT -designeren, og LoadUi () Metode for UIC -modulen brukes til å laste inn UI -filen. Følgende skript viser hvordan du laster inn QT -designer fil som heter Logg Inn.ui som vi opprettet før. De nødvendige modulene importeres i begynnelsen av skriptet. Objektet med applikasjonen opprettes ved hjelp av Qapplication (), og QT -designer filen lastes inn ved hjelp av LoadUi () metode. Neste, The exec () Metoden kalles for å starte hendelsessløyfen til applikasjonen.

# Importer SYS -modul
Importer Sys
# Importer qtwidgets og UIC -moduler
Fra PYQT5 importer qtwidgets, uic
# Opprett appobjekt
app = qtwidgets.Qapplication (Sys.argv)
# Last GUI -form og skjerm
Vindu = UIC.Loadui ("Innlogging.ui ")
vindu.forestilling()
# Start hendelsessløyfen til appen eller dialogboksen
app.exec ()

Følgende dialogboks vises etter å ha utført skriptet ovenfor.

Kjør UI -fil ved å konvertere til Python -fil

UI -filen opprettet av QT -designeren kan konverteres til en Python -fil ved hjelp av Pyuic5 kommando. Kjør følgende kommando for å konvertere Logg Inn.ui fil inn i innloggingsskjema.py fil. De Logg Inn.ui Filen må lagres på det nåværende stedet for å kjøre følgende kommando; Ellers vil det bli generert en feil.

$ pyuic5 pålogging.ui -o påloggingsform.py

Følgende kode vil bli generert i innloggingsskjema.py fil etter å ha utført kommandoen ovenfor.

# -* -Koding: UTF -8 -*-
# Skjemaimplementering generert fra å lese UI -filen 'Innlogging.ui '
#
# Opprettet av: PYQT5 UI Code Generator 5.12.3
#
# Advarsel! Alle endringer i denne filen vil gå tapt!
Fra PYQT5 Importer qtcore, qtgui, qtwidgets
klasse UI_LOGINDIALOG (Objekt):
def setupui (selv, logindialog):
Logindialog.setObjectName ("logindialog")
Logindialog.Endre størrelse (400, 224)
selv-.TextEdit = QTWidgets.QTextedit (Logindialog)
selv-.tekstDit.SetGeometry (Qtcore.Qrect (130, 70, 221, 31))
selv-.tekstDit.setObjectName ("TextEdit")
selv-.textedit_2 = qtwidgets.QTextedit (Logindialog)
selv-.TEXTEDIT_2.SetGeometry (Qtcore.Qrect (130, 120, 221, 31))
selv-.TEXTEDIT_2.setObjectName ("textedit_2")
selv-.Etikett = QTWidgets.Qlabel (Logindialog)
selv-.merkelapp.SetGeometry (Qtcore.Qrect (140, 20, 131, 31))
font = qtgui.Qfont ()
Font.SetPointSize (18)
selv-.merkelapp.setfont (font)
selv-.merkelapp.setObjectName ("etikett")
selv-.etikett_2 = qtwidgets.Qlabel (Logindialog)
selv-.etikett_2.SetGeometry (Qtcore.QRECT (36, 70, 81, 20))
selv-.etikett_2.setObjectName ("label_2")
selv-.etikett_3 = qtwidgets.Qlabel (Logindialog)
selv-.etikett_3.SetGeometry (Qtcore.QRECT (40, 120, 67, 17))
selv-.etikett_3.setObjectName ("label_3")
selv-.btnlogin = qtwidgets.QpushButton (Logindialog)
selv-.Btnlogin.SetGeometry (Qtcore.Qrect (150, 170, 89, 25))
selv-.Btnlogin.setObjectName ("Btnlogin")
selv-.BtnCancel = QTWidgets.QpushButton (Logindialog)
selv-.BtnCancel.SetGeometry (Qtcore.QRECT (250, 170, 89, 25))
selv-.BtnCancel.setObjectName ("BtnCancel")
selv-.RetRanslateUI (Logindialog)
Qtcore.QMetaObject.ConnectslotsByName (Logindialog)
def retranslateui (self, logindialog):
_translate = qtcore.QCoreApplication.oversette
Logindialog.SetWindowTitle (_Translate ("Logindialog", "Dialog"))
selv-.merkelapp.setText (_translate ("logindialog", "påloggingsskjema"))
selv-.etikett_2.setText (_translate ("logindialog", "brukernavn"))
selv-.etikett_3.setText (_translate ("logindialog", "passord"))
selv-.Btnlogin.setText (_translate ("logindialog", "login"))
selv-.BtnCancel.setText (_translate ("logindialog", "avbryt"))

Følgende vil vise Logg Inn Dialogboks ved å importere innloggingsskjema.py fil opprettet ved hjelp av Pyuic5 kommando. Objektet med applikasjonen opprettes ved hjelp av Qapplication (), og innloggingsdialogboksen lastes inn ved hjelp av setupui () metode. Innloggingsknappen er vedlagt med loginclicked () metode for å sjekke om brukernavnet og passordet hentet fra brukeren er gyldig. De Avbryt knappen er festet til avbryt klikket () Metode for å slutte fra søknaden. De exec () Metoden kalles for å starte hendelsessløyfen til applikasjonen.

# Importer qtwidgets
Fra PYQT5 importer qtwidgets
# Importer Sys
Importer Sys
# Importer påloggingsskjema UI
Importer påloggingsform
# Definer en klasse for å konfigurere brukergrensesnittet
Klasse MyApp (QtWidgets.QMainWindow, påloggingsform.Ui_logindialog):
def __init __ (selv, foreldre = ingen):
Super (Myapp, selv).__init __ (foreldre)
# Last inn påloggingsskjemaet
selv-.setupui (selv)
# Ring loginclicked () metode
selv-.Btnlogin.klikket.Koble til (selv.loginclicked)
# Ring CancelClicked () Metode
selv-.BtnCancel.klikket.Koble til (selv.avbryt klikket)
# Erklære metoden for å sjekke brukernavn og passord når påloggingsknappen klikker
def loginclicked (selv):
Hvis selv.tekstDit.topLainText () == 'admin' og selv.TEXTEDIT_2.topLainText () == 'Superuser':
print ('autentisert bruker')
ellers:
trykk ('Uauthenticated User')
# Erklære metoden for å avslutte skriptet når avbryt -knappen klikker
def cancelclicked (self):
exit()
# Opprett appobjekt
app = qtwidgets.Qapplication (Sys.argv)
# Opprett klasseobjekt
form = myapp ()
# Vis skjemaet
form.forestilling()
# Start hendelsessløyfen til appen eller dialogboksen
app.exec ()

Følgende dialogboks vises etter å ha utført skriptet ovenfor.


Hvis brukeren skriver inn feil brukernavn eller passord i Logg Inn skjema, da vises følgende utgang etter å ha klikket på Logg Inn knapp.


Hvis brukeren skriver inn riktig brukernavn og passord i Logg Inn skjema, da vises følgende utgang etter å ha klikket på Logg Inn knapp.


Hvis brukeren klikker på Avbryt knapp i Logg Inn Form, da forsvinner dialogboksen.

Konklusjon

Denne opplæringen viste deg hvordan du installerer QT -designer og hvordan du designer en enkel form ved hjelp av denne applikasjonen. Opplæringen viste deg også hvordan du laster inn dialogboksen UI. Forhåpentligvis hjalp denne artikkelen deg til å forstå bruken av QT Designer for å bygge og bruke GUI i applikasjoner bedre i applikasjoner.