Python

Kuidas kasutada PyQt GUI Builderit

Kuidas kasutada PyQt GUI Builderit

PyQt on populaarne Pythoni teek, mida kasutatakse Pythonis graafiliste rakenduste hõlpsamaks rakendamiseks. Sellel teegil on GUI (Graphical User Interface) ehitaja tööriist nimega Qt kujundaja. GUI saab Pythonis kiiresti üles ehitada, kasutades selle teegi pukseerimise funktsiooni, kuigi sellel tööriistal pole silumisvõimalust nagu tavalisel IDE-l. See õpetus näitab teile, kuidas GUI-d juurutada PyQti Qt Designeri klassi abil.

Eeldused

Enne selles õpetuses toodud näidete kasutamist peate installima tööriista Qt Designer. Rakenduse installimiseks käivitage järgmised käsud Qt kujundaja oma süsteemis:

$ sudo apt-get install qttools5-dev-tools
$ sudo apt-get install qttools5-dev

Avage Qt Designer

Käivitage järgmine käsk, et muuta praegune kataloogi asukoht Qt kujundaja kausta.

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

Rakenduse Qt Designer avamiseks käivitage järgmine käsk.

$ ./ disainer

Kui Qt kujundaja on õigesti installitud, kuvatakse järgmine aken. The Vidin Peaakna vasakul küljel kuvatav kast sisaldab erinevaid vidinaid, mida saate kasutada rakenduse kasutajaliidese kujundamiseks. The Uus vorm akent kasutatakse vaikenuppude abil uue akna loomiseks. Peaakna paremal küljel kuvatud aknad pakuvad teavet vidinate kohta, mida saab lugeda või muuta.

Looge esimene vorm Qt Designeri abil

Pythoni rakenduse liidese kujundamise alustamiseks klõpsame nuppu Loo kahe vaikenupuga dialoogiboksi avamiseks järgmises aknas.

Järgmisena kujundame sisselogimisvormi, kasutades Vidinad sildi, teksti redigeerimise ja nupu vajutamiseks. Dialoogiboks salvestatakse nimega Logi sisse.ui, mida kasutatakse hiljem Pythoni skriptis. The QObject nimi muudetakse nimeks Logindialoog kasutades Atribuudiredaktori aken selle rakenduse.

Sisselogimise dialoogiboksi kasutamine

Kasutajaliidese fail, mille on loonud Qt kujundaja saab Pythoni skriptis kasutada kahel viisil. Faili saab kasutada otse Pythoni skriptis või faili teisendatud Pythoni failis Qt kujundaja faili saab kasutada Pythoni skriptis. Mõlemad viisid dialoogiboksi kasutamiseks Qt kujundaja on toodud õpetuse järgmises osas.

Käivitage Qt Designeri fail otse

PyQti teegi UIC-moodulit kasutatakse Qt Designeri loodud faili ja loadUI () UIC-mooduli meetodit kasutatakse kasutajaliidese faili laadimiseks. Järgmine skript näitab, kuidas Qt kujundaja faili nimega Logi sisse.ui mille me varem lõime. Vajalikud moodulid imporditakse skripti alguses. Rakenduse objekt luuakse QApplication (), ja Qt kujundaja fail laaditakse loadUI () meetod. Järgmine exec () meetodit rakenduse sündmussilmu käivitamiseks.

# Impordi sys moodul
impordi süsteem
# Importige Qt-vidinaid ja kasutajamooduleid
PyQt5-st importige QtWidgets, uic
# Loo rakenduse objekt
app = QtWidgets.QApplication (sys.argv)
# Laadige GUI vorm ja kuvage
aken = uic.loadUi ("Logi sisse.ui ")
aken.näita ()
# Käivitage rakenduse või dialoogiboksi sündmuse silmus
rakendus.exec ()

Pärast ülaltoodud skripti käivitamist ilmub järgmine dialoogiboks.

Käivitage kasutajaliidese fail, teisendades Pythoni failiks

Qt Designeri loodud kasutajaliidese faili saab teisendada Pythoni failiks pyuic5 käsk. Faili teisendamiseks käivitage järgmine käsk Logi sisse.ui faili loginForm.py faili. The Logi sisse.ui järgmise käsu käivitamiseks tuleb fail salvestada praegusesse asukohta; muidu luuakse viga.

$ pyuic5 sisselogimine.ui -o loginForm.py

Rakenduses luuakse järgmine kood loginForm.py fail pärast ülaltoodud käsu käivitamist.

# - * - kodeerimine: utf-8 - *-
# UI-faili lugemisel loodud vormi juurutamine 'Logi sisse.ui '
#
# Loodud: PyQt5 kasutajaliidese koodigeneraator 5.12.3
#
# HOIATUS! Kõik selles failis tehtud muudatused lähevad kaotsi!
PyQt5-st importige QtCore, QtGui, QtWidgets
klass Ui_Logindialog (objekt):
def setupUi (ise, Logindialog):
Logindialoog.setObjectName ("Logindialog")
Logindialoog.suuruse muutmine (400, 224)
ise.textEdit = QtWidgets.QTextEdit (sisselogimise logi)
ise.textMuuda.setGeometry (QtCore.QRect (130, 70, 221, 31)
ise.textMuuda.setObjectName ("textEdit")
ise.textEdit_2 = Qtwidgets.QTextEdit (sisselogimise logi)
ise.textEdit_2.setGeometry (QtCore.QRect (130, 120, 221, 31)
ise.textEdit_2.setObjectName ("textEdit_2")
ise.silt = Qtwidgets.QLabel (logindialoog)
ise.silt.setGeometry (QtCore.QRect (140, 20, 131, 31)
font = QtGui.QFont ()
font.setPointSize (18)
ise.silt.setFont (font)
ise.silt.setObjectName ("silt")
ise.label_2 = Qtwidgets.QLabel (logindialoog)
ise.silt_2.setGeometry (QtCore.QRect (36, 70, 81, 20)
ise.silt_2.setObjectName ("silt_2")
ise.label_3 = Qtwidgets.QLabel (logindialoog)
ise.silt_3.setGeometry (QtCore.QRect (40, 120, 67, 17)
ise.silt_3.setObjectName ("label_3")
ise.btnLogin = Qtwidgets.QPushButton (Logindialog)
ise.btnLogin.setGeometry (QtCore.QRect (150, 170, 89, 25))
ise.btnLogin.setObjectName ("btnLogin")
ise.btnCancel = Qtwidgets.QPushButton (Logindialog)
ise.btnTühista.setGeometry (QtCore.QRect (250, 170, 89, 25))
ise.btnTühista.setObjectName ("btnCancel")
ise.retranslateUi (Logindialog)
QtCore.QMetaObject.connectSlotsByName (Logindialog)
def retranslateUi (ise, Logindialog):
_translate = QtCore.QCoreApplication.tõlkima
Logindialoog.setWindowTitle (_translate ("Logindialog", "Dialoog"))
ise.silt.setText (_translate ("Logindialog", "Sisselogimisvorm"))
ise.silt_2.setText (_translate ("Logindialog", "Kasutajanimi"))
ise.silt_3.setText (_translate ("Logindialog", "Parool"))
ise.btnLogin.setText (_translate ("Logindialog", "Logi sisse"))
ise.btnTühista.setText (_translate ("Logindialog", "Tühista"))

Järgnevas kuvatakse Logi sisse importides dialoogiboksi loginForm.py faili abil pyuic5 käsk. Rakenduse objekt luuakse QApplication (), ja dialoogiboks Sisselogimine laaditakse nupuga setupUi () meetod. Nupp Sisselogimine on lisatud loginClicked () meetod, et kontrollida, kas kasutajalt võetud kasutajanimi ja parool on õiged. The Tühista nupp on CancelClicked () meetod rakendusest väljumiseks. The exec () meetodit rakenduse sündmussilmu käivitamiseks.

# Importige Qt-vidinaid
PyQt5-st importige Qt-vidinaid
# Impordi süsteemid
impordi süsteem
# Importige sisselogimisvorm ui
import loginForm
# Määrake kasutajaliidese seadistamiseks klass
klass MyApp (QtWidgets.QMainWindow, loginForm.Ui_Logindialog):
def __init __ (ise, vanem = pole):
super (MyApp, ise).__init __ (vanem)
# Laadige sisselogimisvorm
ise.setupUi (ise)
# Call loginClicked () meetod
ise.btnLogin.klõpsatud.ühendama (ise.loginClicked)
# Call cancelClicked () meetod
ise.btnTühista.klõpsatud.ühendama (ise.CancelClicked)
# Deklareeri meetod kasutajanime ja parooli kontrollimiseks, kui klõpsatakse nuppu Sisselogimine
def loginClicked (ise):
kui ise.textMuuda.toPlainText () == 'admin' ja ise.textEdit_2.toPlainText () == 'ülikasutaja':
print ('Autentitud kasutaja')
muu:
print ('Autentimata kasutaja')
# Deklareeri meetod skripti lõpetamiseks, kui klõpsatakse nupul Tühista
def cancelClicked (ise):
väljumine ()
# Loo rakenduse objekt
app = QtWidgets.QApplication (sys.argv)
# Loo klassi objekt
vorm = MyApp ()
# Kuva vorm
vormis.näita ()
# Käivitage rakenduse või dialoogiboksi sündmuse silmus
rakendus.exec ()

Pärast ülaltoodud skripti käivitamist ilmub järgmine dialoogiboks.


Kui kasutaja sisestab menüüsse vale kasutajanime või parooli Logi sisse vormi, siis kuvatakse pärast väljundi klõpsamist järgmine väljund Logi sisse nuppu.


Kui kasutaja sisestab aadressi õige kasutajanime ja parooli Logi sisse vormi, siis ilmub pärast nupule klõpsamist järgmine väljund Logi sisse nuppu.


Kui kasutaja klõpsab nuppu Tühista nuppu Logi sisse vormis, kaob dialoogiboks.

Järeldus

See õpetus näitas teile, kuidas installida Qt kujundaja ja kuidas selle rakenduse abil lihtsat vormi kujundada. Õpetus näitas teile ka seda, kuidas otse kasutajaliidese laadida ja pärast Pythoni skripti teisendamist on selle õpetuse teises osas näidatud. Loodetavasti aitas see artikkel teil paremini mõista Qt Designeri kasutamist GUI loomiseks ja kasutamiseks rakendustes.

Kuidas FPS-i suurendada Linuxis?
FPS tähistab Kaadrit sekundis. FPS-i ülesanne on mõõta kaadrisagedust video taasesitamisel või mängude esitamisel. Lihtsamalt öeldes nimetatakse iga s...
Parimad Oculus App Lab mängud
Kui olete Oculuse peakomplekti omanik, peate olema teadlik külglaadimisest. Kõrvalaadimine on protsess, millega installitakse peakomplekti mitte-poesi...
10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...