Python

So verwenden Sie den PyQt-GUI-Builder

So verwenden Sie den PyQt-GUI-Builder

PyQt ist eine beliebte Python-Bibliothek, die verwendet wird, um grafische Anwendungen in Python einfacher zu implementieren. Diese Bibliothek wird mit einem GUI-Builder-Tool (Graphical User Interface) namens . geliefert Qt-Designer. Die GUI kann mit der Drag-and-Drop-Funktion dieser Bibliothek schnell in Python erstellt werden, obwohl dieses Tool keine Debugging-Funktion wie die Standard-IDE hat. Dieses Tutorial zeigt Ihnen, wie Sie die GUI mit der Qt Designer-Klasse von PyQt implementieren.

Voraussetzungen

Sie müssen das Qt Designer-Tool installieren, bevor Sie die in diesem Tutorial bereitgestellten Beispiele üben können. Führen Sie die folgenden Befehle aus, um die zu installieren Qt-Designer auf Ihrem System:

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

Öffnen Sie den Qt-Designer

Führen Sie den folgenden Befehl aus, um den aktuellen Verzeichnisspeicherort in den zu ändern Qt-Designer Mappe.

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

Führen Sie den folgenden Befehl aus, um die Qt Designer-Anwendung zu öffnen.

$ ./Designer

Wenn die Qt-Designer richtig installiert wurde, erscheint folgendes Fenster. Das Widget Die auf der linken Seite des Hauptfensters angezeigte Box enthält verschiedene Widgets, mit denen Sie die Benutzeroberfläche der Anwendung gestalten können. Das Neue Form window wird verwendet, um ein neues Fenster mit den Standardschaltflächen zu erstellen. Die auf der rechten Seite des Hauptfensters angezeigten Fenster enthalten Informationen zu den Widgets, die gelesen oder geändert werden können.

Erstellen Sie das erste Formular mit dem Qt Designer

Um mit dem Entwerfen der Schnittstelle für die Python-Anwendung zu beginnen, klicken wir auf das Erstellen Schaltfläche im folgenden Fenster, um das Dialogfeld mit zwei Standardschaltflächen zu öffnen.

Als nächstes erstellen wir ein Login-Formular mit dem Beschriftungs-, Textbearbeitungs- und Schaltflächen-Widgets. Das Dialogfeld wird unter dem Namen Login . gespeichert.ui, die später im Python-Skript verwendet wird. Das QObjekt Name wird geändert in Login-Dialog Verwendung der Eigenschaftseditorfenster dieser Anwendung.

Verwenden des Anmeldedialogfelds

Die vom . erstellte Benutzeroberflächendatei Qt-Designer kann im Python-Skript auf zwei Arten verwendet werden. Die Datei kann direkt im Python-Skript verwendet werden, oder die konvertierte Python-Datei des Qt-Designer Datei kann im Python-Skript verwendet werden. Beide Möglichkeiten der Verwendung des Dialogfelds von Qt-Designer werden im folgenden Abschnitt des Tutorials gezeigt.

Qt Designer-Datei direkt ausführen

Das UIC-Modul der PyQt-Bibliothek wird verwendet, um die vom Qt-Designer erstellte Datei zu laden, und die loadUI() Methode des UIC-Moduls wird verwendet, um die UI-Datei zu laden. Das folgende Skript zeigt, wie Sie die Qt-Designer Datei mit dem Namen Anmeldung.ui die wir vorher erstellt haben. Die benötigten Module werden am Anfang des Skripts importiert. Das Objekt der Anwendung wird mit dem QAnwendung(), und der Qt-Designer Datei wird geladen mit dem loadUI() Methode. Als nächstes die exec() Methode wird aufgerufen, um die Ereignisschleife der Anwendung zu starten.

# sys-Modul importieren
Importsystem
# QtWidgets und uic-Module importieren
aus PyQt5 importieren Sie QtWidgets, uic
# App-Objekt erstellen
app = QtWidgets.QAnwendung(sys.Argument)
# GUI-Formular laden und anzeigen
Fenster = uic.loadUi("Anmelden.ui")
Fenster.Show()
# Starten Sie die Ereignisschleife der App oder des Dialogfelds
App.exec()

Das folgende Dialogfeld wird angezeigt, nachdem das obige Skript ausgeführt wurde.

Führen Sie die UI-Datei aus, indem Sie sie in eine Python-Datei konvertieren

Die vom Qt Designer erstellte UI-Datei kann mit dem in eine Python-Datei konvertiert werden pyuic5 Befehl. Führen Sie den folgenden Befehl aus, um die zu konvertieren Anmeldung.ui Datei in die Login Formular.py Datei. Das Anmeldung.ui Die Datei muss am aktuellen Speicherort gespeichert sein, um den folgenden Befehl auszuführen; andernfalls wird ein Fehler generiert.

$ pyuic5 Anmelden.ui -o LoginForm.py

Der folgende Code wird in der . generiert Login Formular.py Datei nach Ausführung des obigen Befehls.

# -*- Kodierung: utf-8 -*-
# Formularimplementierung, die aus dem Lesen der UI-Datei 'Login . generiert wurde.ui'
#
# Erstellt von: PyQt5 UI-Code-Generator 5.12.3
#
# WARNUNG! Alle in dieser Datei vorgenommenen Änderungen gehen verloren!
aus PyQt5 importieren Sie QtCore, QtGui, QtWidgets
Klasse Ui_Logindialog(Objekt):
def setupUi(self, Logindialog):
Login-Dialog.setObjectName("Anmeldedialog")
Login-Dialog.Größe ändern (400, 224)
selbst.textEdit = QtWidgets.QTextEdit(Logindialog)
selbst.TextBearbeiten.setGeometry(QtCore.QRect(130, 70, 221, 31))
selbst.TextBearbeiten.setObjectName("textEdit")
selbst.textEdit_2 = QtWidgets.QTextEdit(Logindialog)
selbst.textEdit_2.setGeometry(QtCore.QRect(130, 120, 221, 31))
selbst.textEdit_2.setObjectName("textEdit_2")
selbst.label = QtWidgets.QLabel(Anmeldedialog)
selbst.Etikette.setGeometry(QtCore.QRect(140, 20, 131, 31))
Schriftart = QtGui.QFont()
Schriftart.setPointSize(18)
selbst.Etikette.setFont(Schriftart)
selbst.Etikette.setObjectName("label")
selbst.label_2 = QtWidgets.QLabel(Anmeldedialog)
selbst.label_2.setGeometry(QtCore.QRect(36, 70, 81, 20))
selbst.label_2.setObjectName("label_2")
selbst.label_3 = QtWidgets.QLabel(Anmeldedialog)
selbst.label_3.setGeometry(QtCore.QRect(40, 120, 67, 17))
selbst.label_3.setObjectName("label_3")
selbst.btnLogin = QtWidgets.QPushButton(Anmeldedialog)
selbst.btnLogin.setGeometry(QtCore.QRect(150, 170, 89, 25))
selbst.btnLogin.setObjectName("btnLogin")
selbst.btnCancel = QtWidgets.QPushButton(Anmeldedialog)
selbst.btnAbbrechen.setGeometry(QtCore.QRect(250, 170, 89, 25))
selbst.btnAbbrechen.setObjectName("btnCancel")
selbst.retranslateUi(Logindialog)
QtCore.QMetaObjekt.connectSlotsByName(Anmeldedialog)
def retranslateUi(self, Logindialog):
_translate = QtCore.QCore-Anwendung.Übersetzen
Login-Dialog.setWindowTitle(_translate("Logindialog", "Dialog"))
selbst.Etikette.setText(_translate("Logindialog", "Login-Formular"))
selbst.label_2.setText(_translate("Logindialog", "Benutzername"))
selbst.label_3.setText(_translate("Logindialog", "Passwort"))
selbst.btnLogin.setText(_translate("Logindialog", "Login"))
selbst.btnAbbrechen.setText(_translate("Logindialog", "Abbrechen"))

Das Folgende zeigt die Anmeldung Dialogfeld durch Importieren der Login Formular.py Datei erstellt mit dem pyuic5 Befehl. Das Objekt der Anwendung wird erstellt mit QAnwendung(), und das Login-Dialogfeld wird geladen mit dem setupUi() Methode. Der Login-Button ist mit dem loginClicked() Methode, um zu überprüfen, ob der vom Benutzer übernommene Benutzername und das Kennwort gültig sind. Das Stornieren Knopf ist am . befestigt CancelClicked() Methode zum Beenden der Anwendung. Das exec() Methode wird aufgerufen, um die Ereignisschleife der Anwendung zu starten.

# QtWidgets importieren
aus PyQt5 QtWidgets importieren
# System importieren
Importsystem
# Login-Formular importieren ui
LoginForm importieren
# Definieren Sie eine Klasse zum Einrichten der Benutzeroberfläche
Klasse MyApp (QtWidgets.QMainWindow, loginForm.Ui_Logindialog):
def __init__(self, parent=None):
super(MyApp, selbst).__init__(Elternteil)
# Login-Formular laden
selbst.setupUi(selbst)
# Methode loginClicked() aufrufen
selbst.btnLogin.angeklickt.verbinden (selbst.LoginGeklickt)
# Methode cancelClicked() aufrufen
selbst.btnAbbrechen.angeklickt.verbinden (selbst.abbrechenGeklickt)
# Methode deklarieren, um Benutzername und Passwort zu überprüfen, wenn die Login-Schaltfläche klickt
def loginClicked(self):
wenn selbst.TextBearbeiten.toPlainText() == 'admin' und selbst.textEdit_2.toPlainText() == 'Superuser':
print('Authentifizierter Benutzer')
sonst:
print('Nicht authentifizierter Benutzer')
# Methode zum Beenden des Skripts deklarieren, wenn die Schaltfläche Abbrechen klickt
def abbrechenGeklickt(selbst):
Ausfahrt()
# App-Objekt erstellen
app = QtWidgets.QAnwendung(sys.Argument)
# Klassenobjekt erstellen
form = MeineApp()
# Formular anzeigen
bilden.Show()
# Starten Sie die Ereignisschleife der App oder des Dialogfelds
App.exec()

Das folgende Dialogfeld wird angezeigt, nachdem das obige Skript ausgeführt wurde.


Wenn der Benutzer den falschen Benutzernamen oder das falsche Passwort in das Anmeldung Formular, dann erscheint nach Anklicken des Anmeldung Taste.


Wenn der Benutzer den richtigen Benutzernamen und das richtige Passwort in das Anmeldung Formular, dann erscheint nach Klick auf das Anmeldung Taste.


Wenn der Benutzer auf das klickt Stornieren Knopf im Anmeldung Formular, dann verschwindet das Dialogfeld.

Fazit

Dieses Tutorial hat Ihnen gezeigt, wie Sie es installieren Qt-Designer und wie man mit dieser Anwendung ein einfaches Formular entwirft. Das Tutorial hat Ihnen auch gezeigt, wie Sie das UI-Dialogfeld direkt laden und nach der Konvertierung in das Python-Skript im anderen Teil dieses Tutorials gezeigt haben. Hoffentlich hat Ihnen dieser Artikel geholfen, die Verwendung von Qt Designer zum Erstellen und Verwenden der GUI in Anwendungen besser zu verstehen.

Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...
Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...
Die 5 besten Arcade-Spiele für Linux
Heutzutage sind Computer ernsthafte Maschinen, die zum Spielen verwendet werden. Wenn du den neuen Highscore nicht bekommst, weißt du was ich meine. I...