Pitone | Introduzione a PyQt5
Ci sono così tante opzioni fornite da Python per sviluppare un'applicazione GUI e PyQt5 è una di queste. PyQt5 è un toolkit GUI multipiattaforma, un set di collegamenti Python per Qt v5. È possibile sviluppare un'applicazione desktop interattiva con tanta facilità grazie agli strumenti e alla semplicità forniti da questa libreria. Un'applicazione GUI è composta da front-end e back-end. PyQt5 ha fornito uno strumento chiamato 'QtDesigner' per progettare il front-end tramite il metodo drag and drop in modo che lo sviluppo possa diventare più veloce e si possa dedicare più tempo alle cose di back-end. Installazione: Innanzitutto, dobbiamo installare la libreria PyQt5. Per fare ciò, digita il seguente comando nel terminale o nel prompt dei comandi:
pip install pyqt5
Se installato correttamente è possibile verificarlo eseguendo il codice:
>>>importa PyQt5
PyQt5 fornisce molti strumenti e QtDesigner è uno di questi. Per questo esegui questo comando:
pip install PyQt5-tools
Crea la tua prima app –
Questa è una semplice app con un solo pulsante nella finestra. Dopo aver fatto clic su quel pulsante verrà visualizzato il messaggio Hai fatto clic su di me. Iniziamo .
- Prima di tutto dobbiamo trovare QtDesigner per creare la parte front-end. – QtDesigner è presente in ‘site-packages/pyqt5_tools’ – Per trovare la posizione dei pacchetti del sito scrivi il seguente codice Python utilizzando qualsiasi editor di tua scelta e quindi esegui:
>>> importa sito>>> site.getsitepackages()
- – Eseguire l'applicazione denominata 'designer'.
- Si aprirà una finestra come mostrato in figura:
seleziona l'opzione 'Dialogo senza pulsante' e fai clic su 'Crea' - Sul lato sinistro del designer ci saranno vari widget che possono essere trascinati e rilasciati nella nostra finestra in base alle nostre esigenze.
- Trova e trascina 'Pulsante' ed 'Etichetta'.
- Modifica il testo all'interno dei widget facendo clic con il pulsante destro del mouse e selezionando 'Cambia testo semplice'. Mantieni vuoto il testo dell'etichetta.
- Abbiamo creato il nostro layout front-end, salvalo nella posizione desiderata. Ricorda, questo file avrà .ui come estensione.
- Dobbiamo convertire il file .ui in file .py per ottenere il formato Python dei widget e associarvi i listener di eventi necessari.
Conversione del file .ui in file .py:
- Per questo dobbiamo andare alla directory sitepackages nel terminale o nel prompt dei comandi ed eseguire il comando come mostrato di seguito. Come ottenere la posizione dei pacchetti del sito è stato menzionato in precedenza.
>>> cd C:Users……ProgrammiPythonPython36-32libsite-packages [Posizione dei sitepackages]>>> pyuic5 C:Users……FILENAME .ui[Posizione esatta del file .ui] -o C:Users…….FILENAME.py [Posizione in cui vuoi inserire il file .py]
- Infine aggiungeremo segnali e inseriremo il codice Python per renderlo completamente funzionale.
widget.signal.connect(slot)
- UN segnale viene emesso dai widget dopo il verificarsi di un certo tipo di evento come un clic, doppio clic, ecc. A fessura è qualsiasi funzione richiamabile che eseguirà alcune azioni dopo il verificarsi di un evento.
- Eseguire l'app e fare clic sul pulsante.
Di seguito è riportato il codice:
Python3
import> sys> from> PyQt5> import> QtCore, QtGui, QtWidgets> class> Ui_Dialog(> object> ):> > def> setupUi(> self> , Dialog):> > Dialog.setObjectName('Dialog')> > Dialog.resize(> 400> ,> 300> )> > self> .pushButton> => QtWidgets.QPushButton(Dialog)> > self> .pushButton.setGeometry(QtCore.QRect(> 150> ,> 70> ,> 93> ,> 28> ))> > self> .label> => QtWidgets.QLabel(Dialog)> > self> .label.setGeometry(QtCore.QRect(> 130> ,> 149> ,> 151> ,> 31> ))> > self> .label.setText('')> > self> .retranslateUi(Dialog)> > QtCore.QMetaObject.connectSlotsByName(Dialog)> > > # adding signal and slot> > self> .pushButton.clicked.connect(> self> .showmsg)> > def> retranslateUi(> self> , Dialog):> > _translate> => QtCore.QCoreApplication.translate> > Dialog.setWindowTitle(_translate('Dialog', 'Dialog'))> > self> .pushButton.setText(_translate('Dialog', 'Click'))> > > def> showmsg(> self> ):> > # slot> > self> .label.setText('You clicked me')> if> __name__> => => '__main__':> > app> => QtWidgets.QApplication(sys.argv)> > MainWindow> => QtWidgets.QMainWindow()> > ui> => Ui_Dialog()> > ui.setupUi(MainWindow)> > MainWindow.show()> > sys.exit(app.exec_())> |
seleziona l'opzione 'Dialogo senza pulsante' e fai clic su 'Crea'