Python

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 leveres med et GUI (Graphical User Interface) byggeverktø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 veiledningen viser deg hvordan du implementerer GUI ved hjelp av Qt Designer-klassen PyQt.

Forutsetninger

Du må installere Qt Designer-verktøyet før du trener på eksemplene i denne opplæringen. Kjør følgende kommandoer for å installere Qt Designer på systemet ditt:

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

Åpne Qt Designer

Kjør følgende kommando for å endre den nåværende katalogplasseringen 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 den Qt Designer er riktig installert, vises følgende vindu. De Widget boksen vist på venstre side av hovedvinduet inneholder forskjellige widgets som du kan bruke til å designe brukergrensesnittet til applikasjonen. De Nytt skjema vindu brukes til å opprette et nytt vindu ved hjelp av standardknappene. Vinduene som vises på høyre side av hovedvinduet gir informasjon om widgetene som kan leses eller endres.

Lag det første skjemaet ved hjelp av Qt Designer

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

Deretter vil vi designe et påloggingsskjema ved hjelp av Etikett, tekstredigering og trykknapp-widgets. Dialogboksen lagres med navnet Login.ui, som vil bli brukt senere i Python-skriptet. De QObject navnet endres til Logindialog bruker Eiendomsredaktørvindu av denne applikasjonen.

Bruke påloggingsdialogboksen

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 filen kan brukes i Python-skriptet. Begge måtene å bruke dialogboksen til Qt Designer vises i den neste delen av opplæringen.

Kjør Qt Designer File direkte

UIC-modulen i PyQt-biblioteket brukes til å laste filen som er opprettet av Qt Designer, og loadUI () UIC-modulen brukes til å laste UI-filen. Følgende skript viser hvordan du laster inn Qt Designer filen heter Logg Inn.ui som vi skapte før. De nødvendige modulene importeres i begynnelsen av skriptet. Objektet til applikasjonen blir opprettet ved hjelp av QApplication (), og Qt Designer filen lastes inn med loadUI () metode. Neste, den utføre () metoden kalles for å starte hendelsessløyfen til applikasjonen.

# Importer sys-modul
importer sys
# Importer QtWidgets og uic-moduler
fra PyQt5 importerer du QtWidgets, uic
# Opprett appobjekt
app = QtWidgets.QApplication (sys.argv)
# Last inn skjermbilde og skjerm
vindu = uic.loadUi ("Logg inn.ui ")
vindu.vise fram()
# Start hendelsessløyfen til appen eller dialogboksen
app.utføre ()

Følgende dialogboks vises etter at du har utført skriptet ovenfor.

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

UI-filen opprettet av Qt Designer kan konverteres til en Python-fil ved hjelp av pyuic5 kommando. Kjør følgende kommando for å konvertere Logg Inn.ui filen inn i innloggingsskjema.py fil. De Logg Inn.ui filen må lagres på gjeldende plassering for å kjøre følgende kommando; Ellers genereres en feil.

$ pyuic5 Pålogging.ui -o loginForm.py

Følgende kode genereres i innloggingsskjema.py filen etter å ha utført kommandoen ovenfor.

# - * - koding: utf-8 - *-
# Skjemaimplementering generert fra å lese ui-filen 'Logg inn.ui '
#
# Opprettet av: PyQt5 UI-kodegenerator 5.12.3
#
# ADVARSEL! Alle endringer som er gjort i denne filen vil gå tapt!
fra PyQt5 importerer du 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-.textEdit.setGeometry (QtCore.QRect (130, 70, 221, 31))
selv-.textEdit.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-.label = 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 ("label")
selv-.label_2 = QtWidgets.QLabel (Logindialog)
selv-.label_2.setGeometry (QtCore.QRect (36, 70, 81, 20))
selv-.label_2.setObjectName ("label_2")
selv-.label_3 = QtWidgets.QLabel (Logindialog)
selv-.label_3.setGeometry (QtCore.QRect (40, 120, 67, 17))
selv-.label_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 (selv, Logindialog):
_translate = QtCore.QCoreApplication.oversette
Logindialog.setWindowTitle (_translate ("Logindialog", "Dialog"))
selv-.merkelapp.setText (_translate ("Logindialog", "Login Form"))
selv-.label_2.setText (_translate ("Logindialog", "Brukernavn"))
selv-.label_3.setText (_translate ("Logindialog", "Password"))
selv-.btnLogin.setText (_translate ("Logindialog", "Login"))
selv-.btnCancel.setText (_translate ("Logindialog", "Cancel"))

Følgende vil vise Logg Inn dialogboksen ved å importere innloggingsskjema.py fil opprettet ved hjelp av pyuic5 kommando. Objektet til applikasjonen er opprettet ved hjelp av QApplication (), og påloggingsdialogboksen lastes inn ved hjelp av setupUi () metode. Påloggingsknappen er festet med loginClicked () metode for å sjekke om brukernavnet og passordet hentet fra brukeren er gyldige. De Avbryt knappen er festet til CancelClicked () metode for å avslutte fra søknad. De utføre () metoden kalles for å starte hendelsessløyfen til applikasjonen.

# Importer QtWidgets
fra PyQt5 importerer QtWidgets
# Importer sys
importer sys
# Importer påloggingsskjema ui
import loginForm
# Definer en klasse for å sette opp brukergrensesnittet
klasse MyApp (QtWidgets.QMainWindow, loginForm.Ui_Logindialog):
def __init __ (selv, foreldre = Ingen):
super (MyApp, selv).__init __ (foreldre)
# Last inn påloggingsskjemaet
selv-.setupUi (selv)
# Call loginClicked () -metoden
selv-.btnLogin.klikket.koble (selv.loginClicked)
# Call cancelClicked () -metoden
selv-.btnCancel.klikket.koble (selv.CancelClicked)
# Erklær metoden for å sjekke brukernavn og passord når Login-knappen vil klikke
def loginClicked (selv):
hvis selv.textEdit.toPlainText () == 'admin' og selv.textEdit_2.toPlainText () == 'superbruker':
skriv ut ('Autentisert bruker')
ellers:
skriv ut ('Uautentisert bruker')
# Erklær metoden for å avslutte skriptet når Avbryt-knappen vil klikke
def cancelClicked (selv):
exit()
# Opprett appobjekt
app = QtWidgets.QApplication (sys.argv)
# Opprett klasseobjekt
form = MyApp ()
# Vis skjemaet
skjema.vise fram()
# Start hendelsessløyfen til appen eller dialogboksen
app.utføre ()

Følgende dialogboks vises etter at du har utført skriptet ovenfor.


Hvis brukeren skriver inn feil brukernavn eller passord i Logg Inn skjemaet, vil følgende utdata vises etter å ha klikket på Logg Inn knapp.


Hvis brukeren skriver inn riktig brukernavn og passord i Logg Inn skjemaet, vil følgende utdata vises etter å ha klikket på Logg Inn knapp.


Hvis brukeren klikker på Avbryt -knappen i Logg Inn form, så vil dialogboksen forsvinne.

Konklusjon

Denne veiledningen viste deg hvordan du installerer Qt Designer og hvordan du designer et enkelt skjema ved hjelp av dette programmet. Opplæringen viste deg også hvordan du laster UI-dialogboksen direkte, og etter at du har konvertert den til Python-skriptet, har den vist i den andre delen av denne opplæringen. Forhåpentligvis hjalp denne artikkelen deg til å bedre forstå bruken av Qt Designer for å bygge og bruke GUI i applikasjoner.

Mus Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Dual Display Mouse Manager lar deg kontrollere og konfigurere musebevegelse mellom flere skjermer, ved å bremse bevegelsene nær grensen. Windows 10/8,...
Mus WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
Hvis du vil forbedre standardfunksjonene til musepekeren, bruk freeware WinMouse. Det legger til flere funksjoner som hjelper deg å få mest mulig ut a...
Mus Mus venstreklikknapp fungerer ikke på Windows 10
Mus venstreklikknapp fungerer ikke på Windows 10
Hvis du bruker en dedikert mus med den bærbare eller stasjonære datamaskinen, men museklikk-knappen fungerer ikke på Windows 10/8/7 av en eller annen ...