logo

Python | Uvod v PyQt5

Python ponuja toliko možnosti za razvoj aplikacije GUI in PyQt5 je ena izmed njih. PyQt5 je nabor orodij GUI za več platform, nabor pythonovih vezav za Qt v5. Zaradi orodij in preprostosti, ki jih ponuja ta knjižnica, je mogoče s tolikšno lahkoto razviti interaktivno namizno aplikacijo. Aplikacija GUI je sestavljena iz sprednjega in zadnjega dela. PyQt5 je zagotovil orodje, imenovano 'QtDesigner', za oblikovanje sprednjega dela z metodo povleci in spusti, tako da lahko razvoj postane hitrejši in se lahko več časa posveti zadevam v ozadju. Namestitev: Najprej moramo namestiti knjižnico PyQt5. Za to v terminal ali ukazni poziv vnesite naslednji ukaz:

pip install pyqt5>

Če je bila namestitev uspešna, jo lahko preverite tako, da zaženete kodo:

>>>uvozi PyQt5>>

PyQt5 ponuja veliko orodij in QtDesigner je eno izmed njih. Za to zaženite ta ukaz:



pip install PyQt5-tools>

Ustvarite svojo prvo aplikacijo –

To je preprosta aplikacija z enim gumbom v oknu. Po kliku na ta gumb se prikaže sporočilo Kliknili ste me. Začnimo .

  • Najprej moramo najti QtDesigner ustvariti sprednji del. – QtDesigner je prisoten na ‘site-packages/pyqt5_tools’ – Za iskanje lokacije paketov spletnih mest napišite naslednjo kodo python s katerim koli urejevalnikom po vaši izbiri in nato zaženite:
>>> uvozite spletno mesto>>> site.getsitepackages()>
  • – Zaženite aplikacijo z imenom »designer«.
  • Odpre se okno, kot je prikazano na sliki: izberite možnost »Pogovorno okno brez gumba« in kliknite »Ustvari«
  • Na levi strani oblikovalnika bodo različni pripomočki, ki jih lahko povlečete in spustite v naše okno glede na naše zahteve.
  • Poiščite in povlecite in spustite »Pritisni gumb« in »Oznaka«.
  • Spremenite besedilo v gradnikih tako, da ga kliknete z desno miškino tipko in izberete »Spremeni navadno besedilo«. Besedilo oznake naj bo prazno.
  • Ustvarili smo našo postavitev sprednjega dela, samo shranite jo na želeno mesto. Ne pozabite, da bo ta datoteka imela pripono .ui.
  • Datoteko .ui moramo pretvoriti v datoteko .py, da dobimo python obliko gradnikov in jim pripnemo potrebne poslušalce dogodkov.

Pretvarjanje datoteke .ui v datoteko .py:

  • Za to moramo iti v imenik sitepackages v terminalu ali ukaznem pozivu in zagnati ukaz, kot je prikazano spodaj. Pridobivanje lokacije paketov spletnih mest je bilo omenjeno prej.

>>> cd C:Users……ProgramsPythonPython36-32libsite-packages [Lokacija paketov spletnega mesta]>>> pyuic5 C:Users……FILENAME .ui[Natančna lokacija datoteke .ui] -o C:Uporabniki…….IMEDATOTEKE.py [Mesto, kamor želite postaviti datoteko .py]

kaj je 10 od 100
  • Nazadnje bomo dodali signale in režo v kodo python, da bo popolnoma funkcionalna.
widget.signal.connect(slot)>
  • A signal oddajajo pripomočki po pojavu določene vrste dogodka, kot je klik, dvojni klik itd. reža je katera koli funkcija, ki jo je mogoče priklicati in bo izvedla neko dejanje po pojavu dogodka.
  • Zaženite aplikacijo in kliknite gumb.

Spodaj je koda –

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

primerjava leva in tigra
>

>