logo

Python | Introducció a PyQt5

Hi ha tantes opcions proporcionades per Python per desenvolupar una aplicació GUI i PyQt5 és una d'elles. PyQt5 és un conjunt d'eines de GUI multiplataforma, un conjunt d'enllaços Python per a Qt v5. Es pot desenvolupar una aplicació d'escriptori interactiva amb tanta facilitat gràcies a les eines i la simplicitat que ofereix aquesta biblioteca. Una aplicació GUI consta de front-end i back-end. PyQt5 ha proporcionat una eina anomenada 'QtDesigner' per dissenyar el front-end mitjançant el mètode d'arrossegar i deixar anar de manera que el desenvolupament es pugui fer més ràpid i es pugui dedicar més temps a les coses del back-end. Instal·lació: Primer, hem d'instal·lar la biblioteca PyQt5. Per a això, escriviu l'ordre següent al terminal o al indicador d'ordres:

pip install pyqt5>

Si s'ha instal·lat correctament, es pot verificar executant el codi:



>>>importar PyQt5>

PyQt5 ofereix moltes eines i QtDesigner és una d'elles. Per a això executeu aquesta comanda:

pip install PyQt5-tools>

Crea la teva primera aplicació -

Aquesta és una aplicació senzilla amb un sol botó a la finestra. Després de fer clic en aquest botó, apareixerà un missatge M'has fet clic. Comencem .

  • Primer de tot, hem de trobar QtDesigner per crear la part frontal. – QtDesigner està present a ‘site-packages/pyqt5_tools’ – Per trobar la ubicació dels paquets del lloc, escriviu el següent codi Python utilitzant qualsevol editor que trieu i, a continuació, executeu:
>>> importar lloc>>> site.getsitepackages()>
  • - Executeu l'aplicació anomenada 'dissenyador'.
  • S'obrirà una finestra tal com es mostra a la figura: seleccioneu l'opció 'Diàleg sense botó' i feu clic a 'Crea'
  • Al costat esquerre del dissenyador hi haurà diversos ginys que es poden arrossegar i deixar anar a la nostra finestra segons el nostre requisit.
  • Cerqueu i arrossegueu i deixeu anar 'Botó' i 'Etiqueta'.
  • Canvieu el text dins dels ginys fent-hi clic amb el botó dret i seleccionant 'Canvia el text sense format'. Manteniu el text de l'etiqueta en blanc.
  • Hem creat el nostre disseny frontal, només cal que el deseu a la ubicació que vulgueu. Recordeu que aquest fitxer tindrà l'extensió .ui.
  • Hem de convertir el fitxer .ui en fitxer .py per obtenir la forma Python dels ginys i adjuntar-hi els oients d'esdeveniments necessaris.

Conversió del fitxer .ui en fitxer .py:

  • Per a això hem d'anar al directori sitepackages al terminal o al símbol d'ordres i executar l'ordre tal com es mostra a continuació. L'obtenció de la ubicació dels paquets del lloc s'ha esmentat anteriorment.

>>> cd C:Usuaris……ProgramsPythonPython36-32libsite-packages [Ubicació dels paquets del lloc]>>> pyuic5 C:Usuaris……FILENAME .ui[Ubicació exacta del fitxer .ui] -o C:Usuaris…….FILENAME.py [Ubicació on es vol posar el fitxer .py]



  • Finalment afegirem senyals i ranures al codi Python perquè sigui totalment funcional.
widget.signal.connect(slot)>
  • A senyal és emès pels ginys després de l'aparició d'un determinat tipus d'esdeveniment com un clic, un doble clic, etc. A ranura és qualsevol funció cridable que realitzarà alguna acció després de l'ocurrència d'un esdeveniment.
  • Executeu l'aplicació i feu clic al botó.

A continuació es mostra el codi -

Python 3

conjunt mecanografiat




mvc al marc de primavera



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_())>

>

>