Come usare il costruttore di GUI PYQT

Come usare il costruttore di GUI PYQT

Pyqt è una popolare libreria Python utilizzata per implementare più facilmente applicazioni grafiche in Python. Questa libreria viene fornita con uno strumento Builder GUI (Interfaccia utente grafica) chiamato Qt Designer. La GUI può essere costruita rapidamente in Python usando la funzione di trascinamento di questa libreria, sebbene questo strumento non abbia alcuna struttura di debug come l'IDE standard. Questo tutorial mostra come implementare la GUI utilizzando la classe QT Designer di Pyqt.

Prerequisiti

È necessario installare lo strumento QT Designer prima di praticare gli esempi forniti in questo tutorial. Eseguire i seguenti comandi per installare il Qt Designer Sul tuo sistema:

$ sudo apt-get Installa QTTOOLS5-dev-tools
$ sudo apt-get Installa QTTOOLS5-dev

Apri il designer QT

Eseguire il comando seguente per modificare la posizione della directory corrente in Qt Designer cartella.

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

Esegui il comando seguente per aprire l'applicazione QT Designer.

$ ./progettista

Se la Qt Designer è stato installato correttamente, apparirà la seguente finestra. IL Aggeggio La casella mostrata sul lato sinistro della finestra principale contiene vari widget che è possibile utilizzare per progettare l'interfaccia utente dell'applicazione. IL Nuova forma La finestra viene utilizzata per creare una nuova finestra utilizzando i pulsanti predefiniti. Le finestre mostrate sul lato destro della finestra principale forniscono informazioni sui widget che possono essere letti o modificati.

Crea il primo modulo utilizzando QT Designer

Per iniziare a progettare l'interfaccia per l'applicazione Python, faremo clic su Creare Pulsante nella finestra seguente per aprire la finestra di dialogo con due pulsanti predefiniti.

Successivamente, progetteremo un modulo di accesso usando il Etichetta, modifica del testo e widget pulsante Push. La finestra di dialogo verrà salvata con il nome di accesso.UI, che verrà utilizzata più avanti nella sceneggiatura Python. IL Qobject il nome verrà modificato a Logindialog usando il Finestra dell'editor di proprietà di questa applicazione.

Utilizzo della finestra di dialogo di accesso

Il file di interfaccia utente creato da Qt Designer può essere usato nella sceneggiatura Python in due modi. Il file può essere utilizzato direttamente nello script Python o nel file Python convertito del Qt Designer Il file può essere utilizzato nello script Python. Entrambi i modi di utilizzare la finestra di dialogo di Qt Designer sono mostrati nella sezione seguente del tutorial.

Esegui direttamente il file di design Qt

Il modulo UIC della libreria PYQT viene utilizzato per caricare il file creato dal Designer QT e il caricUi () Il metodo del modulo UIC viene utilizzato per caricare il file dell'interfaccia utente. Il seguente script mostra come caricare il Qt Designer File denominato Login.UI che abbiamo creato prima. I moduli necessari vengono importati all'inizio dello script. L'oggetto dell'applicazione viene creato utilizzando il Qapplication (), e il Qt Designer Il file viene caricato utilizzando il file caricUi () metodo. Successivamente, il Exec () il metodo è chiamato per avviare il ciclo dell'evento dell'applicazione.

# Importa modulo sys
Import sys
# Importa QtWidgets e moduli UIC
da pyqt5 import qtwidgets, uic
# Crea oggetto app
app = qtwidgets.Qapplicazione (sys.argv)
# Carica il modulo GUI e il display
finestra = uic.loadui ("Accedi.UI ")
finestra.spettacolo()
# Avvia il ciclo dell'evento dell'app o della finestra di dialogo
app.Exec ()

La seguente finestra di dialogo verrà visualizzata dopo aver eseguito lo script sopra.

Esegui il file dell'interfaccia utente convertendo in file python

Il file dell'interfaccia utente creato dal designer QT può essere convertito in un file Python utilizzando il Pyuic5 comando. Eseguire il comando seguente per convertire il Login.UI file nel Loginform.Py file. IL Login.UI Il file deve essere archiviato nella posizione corrente per eseguire il comando seguente; Altrimenti, verrà generato un errore.

$ pyuic5 login.Ui -o loginform.Py

Il seguente codice verrà generato in Loginform.Py File dopo aver eseguito il comando sopra.

# -* -Coding: UTF -8 -*-
# Implementazione del modulo generato dalla lettura dell'accesso del file dell'interfaccia utente.UI '
#
# Creato da: Generatore di codice dell'interfaccia utente PYQT5 5.12.3
#
# AVVERTIMENTO! Tutte le modifiche apportate in questo file andranno perse!
Da Pyqt5 Import Qtcore, Qtgui, Qtwidgets
Classe ui_logindialog (oggetto):
def setupui (self, logindialog):
Logindialog.setObjectName ("LogInDialog")
Logindialog.Ridimension (400, 224)
se stesso.textEdit = qtwidgets.QTextEdit (LogIndialog)
se stesso.TextEdit.SetGeometry (Qtcore.QRECT (130, 70, 221, 31))
se stesso.TextEdit.setObjectName ("TextEdit")
se stesso.textEdit_2 = qtwidgets.QTextEdit (LogIndialog)
se stesso.TextEdit_2.SetGeometry (Qtcore.QRECT (130, 120, 221, 31))
se stesso.TextEdit_2.setObjectName ("TextEdit_2")
se stesso.Etichetta = QtWidgets.Qlabel (Logindialog)
se stesso.etichetta.SetGeometry (Qtcore.QRECT (140, 20, 131, 31))
FONT = QTGUI.Qfont ()
font.SetpointSize (18)
se stesso.etichetta.SetFont (carattere)
se stesso.etichetta.setObjectName ("etichetta")
se stesso.etichetta_2 = qtwidgets.Qlabel (Logindialog)
se stesso.etichetta_2.SetGeometry (Qtcore.QRECT (36, 70, 81, 20))
se stesso.etichetta_2.setObjectName ("etichetta_2")
se stesso.etichetta_3 = qtwidgets.Qlabel (Logindialog)
se stesso.etichetta_3.SetGeometry (Qtcore.QRECT (40, 120, 67, 17))
se stesso.etichetta_3.setObjectName ("etichetta_3")
se stesso.btnlogin = qtwidgets.Qpushbutton (Logindialog)
se stesso.btnlogin.SetGeometry (Qtcore.QRECT (150, 170, 89, 25))
se stesso.btnlogin.setObjectName ("Btnlogin")
se stesso.btncancel = qtwidgets.Qpushbutton (Logindialog)
se stesso.btncancel.SetGeometry (Qtcore.QRECT (250, 170, 89, 25))
se stesso.btncancel.setObjectName ("BtnCancel")
se stesso.RetraslateUi (Logindialog)
Qtcore.QmetaObject.ConnectSlotsByName (LogIndialog)
Def RetranSlateui (self, logindialog):
_Translate = Qtcore.QCOREAPPLICAZIONE.tradurre
Logindialog.setWindowTitle (_Translate ("LogIndialog", "Dialog"))
se stesso.etichetta.setText (_Translate ("LogInDialog", "Forma di accesso"))
se stesso.etichetta_2.setText (_Translate ("LogInDialog", "Nome utente")
se stesso.etichetta_3.setText (_Translate ("LogInDialog", "Password")
se stesso.btnlogin.setText (_Translate ("logInDialog", "login")
se stesso.btncancel.setText (_Translate ("LogInDialog", "annulla"))

Quanto segue visualizzerà il file Login Dialogico importando il file Loginform.Py file creato usando il Pyuic5 comando. L'oggetto dell'applicazione viene creato utilizzando Qapplication (), e la finestra di dialogo di accesso viene caricata utilizzando setupui () metodo. Il pulsante di accesso è collegato al LogInClicked () metodo per verificare se il nome utente e la password prelevati dall'utente sono validi. IL Annulla Il pulsante è allegato al file cancelclicked () Metodo da smettere dall'applicazione. IL Exec () il metodo è chiamato per avviare il ciclo dell'evento dell'applicazione.

# Importa QtWidgets
da pyqt5 import qtwidgets
# Import sys
Import sys
# Importa l'interfaccia utente del modulo di accesso
Importa loginform
# Definisci una classe per configurare l'interfaccia utente
Class MyApp (Qtwidgets.Qmainwindow, loginform.Ui_logindialog):
def __init __ (self, genitore = nessuno):
super (myapp, sé).__init __ (genitore)
# Carica il modulo di accesso
se stesso.setupui (self)
# Metodo Chiama LogInClicked ()
se stesso.btnlogin.Clicato.Connetti (Self.logincling)
# Chiama il metodo cancelClicked ()
se stesso.btncancel.Clicato.Connetti (Self.cancellato)
# Dichiara il metodo per controllare il nome utente e la password quando il pulsante di accesso fai clic su
def loginclicked (self):
se sé.TextEdit.topLainText () == 'Admin' e Self.TextEdit_2.topLainText () == 'Superuser':
Stampa ("utente autenticato")
altro:
Print ("Utente non autenticato")
# Dichiara il metodo per terminare lo script al momento del pulsante Annulla
def cancelclicked (self):
Uscita()
# Crea oggetto app
app = qtwidgets.Qapplicazione (sys.argv)
# Crea oggetto Class
forma = myapp ()
# Visualizza il modulo
modulo.spettacolo()
# Avvia il ciclo dell'evento dell'app o della finestra di dialogo
app.Exec ()

La seguente finestra di dialogo verrà visualizzata dopo aver eseguito lo script sopra.


Se l'utente inserisce il nome utente o la password sbagliati in Login modulo, quindi verrà visualizzato il seguente output dopo aver fatto clic su Login pulsante.


Se l'utente inserisce il nome utente e la password corretti in Login modulo, quindi verrà visualizzato il seguente output dopo aver fatto clic su Login pulsante.


Se l'utente fa clic su Annulla pulsante nel Login modulo, quindi la finestra di dialogo scomparirà.

Conclusione

Questo tutorial ti ha mostrato come installare Qt Designer e come progettare una forma semplice usando questa applicazione. Il tutorial ti ha anche mostrato come caricare la finestra di dialogo dell'interfaccia utente direttamente e dopo averla convertita nello script Python ha mostrato nell'altra parte di questo tutorial. Spero che questo articolo ti abbia aiutato a comprendere meglio l'uso di QT Designer per la costruzione e l'utilizzo della GUI nelle applicazioni.