Der er så mange muligheder fra Python til at udvikle GUI-applikationer, og PyQt5 er en af dem. PyQt5 er cross-platform GUI toolkit, et sæt python-bindinger til Qt v5. Man kan udvikle en interaktiv desktopapplikation med så meget lethed på grund af de værktøjer og enkelhed, som dette bibliotek tilbyder. En GUI-applikation består af Front-end og Back-end. PyQt5 har leveret et værktøj kaldet 'QtDesigner' til at designe front-end by drag and drop metoden, så udviklingen kan blive hurtigere, og man kan give mere tid på back-end ting. Installation: Først skal vi installere PyQt5-biblioteket. Til dette skal du skrive følgende kommando i terminalen eller kommandoprompten:
eksekver script shell
pip install pyqt5>
Hvis den er installeret med succes, kan man bekræfte den ved at køre koden:
>>>import PyQt5>
PyQt5 giver masser af værktøjer og QtDesigner er et af dem. Kør denne kommando til dette:
pip install PyQt5-tools>
Opret din første app –
Dette er en simpel app med en enkelt knap i vinduet. Når du har klikket på den knap, vises en besked Du klikkede på mig. Lad os begynde .
- Først og fremmest skal vi finde QtDesigner for at oprette front-end-delen. – QtDesigner er til stede på ‘site-packages/pyqt5_tools’ – For at finde placeringen af site-pakker skal du skrive følgende python-kode ved hjælp af en editor efter eget valg og derefter køre:
>>> import websted>>> site.getsitepackages()>
- – Kør applikationen med navnet 'designer'.
- Et vindue åbnes som vist på figuren:
vælg indstillingen 'Dialog uden knap' og klik på 'Opret' - I venstre side af designeren vil der være forskellige widgets, som kan trækkes og slippes i vores vindue i henhold til vores krav.
- Find og træk-og-slip 'Push Button' og 'Label'.

- Skift teksten inde i widgets ved at højreklikke på den og vælge 'Skift almindelig tekst'. Hold etikettens tekst tom.

- Vi har lavet vores frontend-layout, bare gem det på din ønskede placering. Husk, denne fil vil have .ui som filtypenavn.
- Vi skal konvertere .ui-filen til .py-fil for at få widgetternes python-form og vedhæfte nødvendige begivenhedslyttere til dem.
Konvertering af .ui-fil til .py-fil:
- Til dette skal vi gå til sitepackages bibliotek i terminal eller kommandoprompt og køre kommandoen som vist nedenfor. At få placeringen af sitepackages er nævnt tidligere.
>>> cd C:Users……ProgramsPythonPython36-32libsite-pakker [Placering af sitepackages]>>> pyuic5 C:Users……FILENAME .ui[Nøjagtig placering af .ui-fil] -o C:Users…….FILENAME.py [Placering, hvor .py-filen skal placeres]
- Til sidst vil vi tilføje signaler og slot i python-koden for at gøre den fuldt funktionel.
widget.signal.connect(slot)>
- EN signal udsendes af widgets efter forekomsten af en bestemt slags begivenhed som et klik, dobbeltklik osv. A slot er enhver kaldbar funktion, som vil udføre en handling efter forekomsten af en hændelse.
- Kør appen, og klik på knappen.

Nedenfor er koden -
arrays i java
Python3
modifikationstaster
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_())> |
type variabler java
>
>
vælg indstillingen 'Dialog uden knap' og klik på 'Opret'

