„Python“

Kaip naudotis PyQt GUI Builder

Kaip naudotis PyQt GUI Builder

„PyQt“ yra populiari „Python“ biblioteka, naudojama lengviau įgyvendinti „Python“ grafines programas. Šioje bibliotekoje yra GUI (grafinės vartotojo sąsajos) kūrimo įrankis, vadinamas Qt dizaineris. GUI galima greitai sukurti „Python“ naudojant šios bibliotekos vilkimo ir nuleidimo funkciją, nors šiame įrankyje nėra derinimo priemonės, tokios kaip standartinis IDE. Šioje pamokoje parodoma, kaip įdiegti GUI naudojant „PyQt“ Qt Designer klasę.

Būtinos sąlygos

Prieš praktikuodami šioje pamokoje pateiktus pavyzdžius, turite įdiegti „Qt Designer“ įrankį. Norėdami įdiegti, paleiskite šias komandas Qt dizaineris jūsų sistemoje:

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

Atidarykite „Qt Designer“

Vykdykite šią komandą, jei norite pakeisti dabartinę katalogo vietą į Qt dizaineris aplanką.

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

Paleiskite šią komandą, kad atidarytumėte „Qt Designer“ programą.

$ ./ dizaineris

Jei Qt dizaineris tinkamai įdiegta, pasirodys toks langas. The Valdiklis Kairėje pagrindinio lango pusėje pateiktame laukelyje yra įvairių valdiklių, kuriuos galite naudoti kurdami programos vartotojo sąsają. The Nauja forma langas naudojamas sukurti naują langą naudojant numatytuosius mygtukus. Dešinėje pagrindinio lango pusėje rodomuose languose pateikiama informacija apie valdiklius, kuriuos galima skaityti ar keisti.

Sukurkite pirmąją formą naudodami „Qt Designer“

Norėdami pradėti kurti „Python“ programos sąsają, spustelėkite Kurti mygtukas kitame lange atidaryti dialogo langą su dviem numatytaisiais mygtukais.

Tada sukursime prisijungimo formą naudodami Etikečių, teksto redagavimo ir mygtuko valdikliai. Dialogo langas bus išsaugotas su vardu Prisijungti.ui, kuris vėliau bus naudojamas Python scenarijuje. The QObject vardas bus pakeistas į „Logindialog“ naudojant Nuosavybės redaktoriaus langas šios programos.

Naudodamiesi prisijungimo dialogo langeliu

Vartotojo sąsajos failas, kurį sukūrė Qt dizaineris gali būti naudojamas „Python“ scenarijuje dviem būdais. Failą galima naudoti tiesiogiai „Python“ scenarijuje arba konvertuotame „Python“ faile Qt dizaineris failą galima naudoti „Python“ scenarijuje. Abu dialogo lango naudojimo būdai Qt dizaineris yra rodomi kitame vadovėlio skyriuje.

Tiesiogiai paleiskite „Qt Designer“ failą

„PyQt“ bibliotekos UIC modulis naudojamas įkelti „Qt Designer“ sukurtą failą ir loadUI () UIC modulio metodas naudojamas UI failui įkelti. Šis scenarijus parodo, kaip įkelti Qt dizaineris failas pavadintas Prisijungti.ui kurį kūrėme anksčiau. Būtini moduliai importuojami scenarijaus pradžioje. Programos objektas sukurtas naudojant QApplication (), ir Qt dizaineris failas įkeliamas naudojant loadUI () metodas. Toliau exec () metodas yra vadinamas paleisti programos įvykių kilpą.

# Importuoti sys modulį
importuoti sistemas
# Importuokite „QtWidgets“ ir „uic“ modulius
iš „PyQt5“ importuokite „QtWidgets“, uic
# Sukurkite programos objektą
app = QtWidgets.QApplication (sys.argv)
# Įkelti GUI formą ir rodyti
langas = uic.loadUi ("Prisijungimas.ui ")
langas.Rodyti()
# Paleiskite programos ar dialogo lango įvykių ciklą
programa.exec ()

Vykdžius aukščiau pateiktą scenarijų pasirodys toks dialogo langas.

Paleiskite vartotojo sąsajos failą konvertuodami į „Python“ failą

„Qt Designer“ sukurtą vartotojo sąsajos failą galima konvertuoti į „Python“ failą naudojant pyuic5 komandą. Norėdami konvertuoti, paleiskite šią komandą Prisijungti.ui failą į prisijungimo forma.py failą. The Prisijungti.ui failas turi būti saugomas dabartinėje vietoje norint paleisti šią komandą; priešingu atveju bus sugeneruota klaida.

$ pyuic5 prisijungimas.ui -o loginForm.py

Šis kodas bus sugeneruotas prisijungimo forma.py failą, įvykdžius aukščiau nurodytą komandą.

# - * - kodavimas: utf-8 - *-
# Formos įgyvendinimas sukurtas skaitant vartotojo failą „Prisijungti.ui '
#
# Sukūrė: PyQt5 vartotojo sąsajos kodo generatorius 5.12.3
#
# ĮSPĖJIMAS! Visi šiame faile atlikti pakeitimai bus prarasti!
iš „PyQt5“ importuokite „QtCore“, „QtGui“, „QtWidgets“
klasė „Ui_Logindialog“ (objektas):
def setupUi (savarankiškai, „Logindialog“):
„Logindialog“.setObjectName („Logindialog“)
„Logindialog“.pakeisti dydį (400, 224)
savarankiškai.textEdit = QtWidgets.„QTextEdit“ („Logindialog“)
savarankiškai.tekstas Redaguoti.setGeometry (QtCore.QRect (130, 70, 221, 31)
savarankiškai.tekstas Redaguoti.setObjectName („textEdit“)
savarankiškai.textEdit_2 = QtWidgets.„QTextEdit“ („Logindialog“)
savarankiškai.textEdit_2.setGeometry (QtCore.QRect (130, 120, 221, 31)
savarankiškai.textEdit_2.setObjectName ("textEdit_2")
savarankiškai.etiketė = QtWidgets.„QLabel“ („Logindialog“)
savarankiškai.etiketė.setGeometry (QtCore.QRect (140, 20, 131, 31)
font = QtGui.„QFont“ ()
šriftas.„setPointSize“ (18)
savarankiškai.etiketė.setFont (šriftas)
savarankiškai.etiketė.setObjectName („etiketė“)
savarankiškai.label_2 = QtWidgets.„QLabel“ („Logindialog“)
savarankiškai.label_2.setGeometry (QtCore.QRect (36, 70, 81, 20)
savarankiškai.label_2.setObjectName ("label_2")
savarankiškai.label_3 = QtWidgets.„QLabel“ („Logindialog“)
savarankiškai.label_3.setGeometry (QtCore.QRect (40, 120, 67, 17)
savarankiškai.label_3.setObjectName ("label_3")
savarankiškai.btnLogin = QtWidgets.„QPushButton“ („Logindialog“)
savarankiškai.btnPrisijungti.setGeometry (QtCore.QRect (150, 170, 89, 25))
savarankiškai.btnPrisijungti.setObjectName ("btnLogin")
savarankiškai.btnCancel = QtWidgets.„QPushButton“ („Logindialog“)
savarankiškai.btnAtšaukti.setGeometry (QtCore.QRect (250, 170, 89, 25))
savarankiškai.btnAtšaukti.setObjectName ("btnCancel")
savarankiškai.retranslateUi („Logindialog“)
„QtCore“.„QMetaObject“.connectSlotsByName („Logindialog“)
def retranslateUi (savarankiškai, „Logindialog“):
_translate = QtCore.„QCoreApplication“.versti
„Logindialog“.setWindowTitle (_translate ("Logindialog", "Dialog"))
savarankiškai.etiketė.setText (_translate ("Logindialog", "Prisijungimo forma"))
savarankiškai.label_2.setText (_translate ("Logindialog", "Vartotojo vardas"))
savarankiškai.label_3.setText (_translate ("Logindialog", "Slaptažodis"))
savarankiškai.btnPrisijungti.setText (_translate ("Logindialog", "Prisijungti"))
savarankiškai.btnAtšaukti.setText (_translate ("Logindialog", "Atšaukti"))

Toliau bus rodomas Prisijungti dialogo langą importuodami prisijungimo forma.py failas sukurtas naudojant pyuic5 komandą. Programos objektas sukurtas naudojant QApplication (), ir dialogo langas Prisijungimas yra įkeltas naudojant setupUi () metodas. Prisijungimo mygtukas pridedamas prie prisijunkite spustelėję () metodas patikrinti, ar teisingas iš vartotojo paimtas vartotojo vardas ir slaptažodis. The Atšaukti mygtukas pridedamas prie CancelClicked () metodas atsisakyti programos. The exec () metodas yra vadinamas paleisti programos įvykių kilpą.

# Importuoti „QtWidgets“
iš „PyQt5“ importuokite „QtWidgets“
# Importuoti sistemas
importuoti sistemas
# Importuoti prisijungimo formą
import loginForm
# Apibrėžkite klasę vartotojo sąsajai nustatyti
klasės „MyApp“ („QtWidgets“.QMainWindow, loginForm.„Ui_Logindialog“):
def __init __ (savęs, tėvų = nėra):
super („MyApp“, pats).__init __ (tėvas)
# Įkelkite prisijungimo formą
savarankiškai.setupUi (savarankiškai)
# Call callClicked () metodas
savarankiškai.btnPrisijungti.spustelėjo.prisijungti (savarankiškai.prisijunkite spustelėję)
# Skambučio atšaukimo spustelėtas () metodas
savarankiškai.btnAtšaukti.spustelėjo.prisijungti (savarankiškai.spustelėti)
# Paskelbkite metodą, kaip patikrinti vartotojo vardą ir slaptažodį, kai spustelės mygtuką Prisijungti
def loginClicked (self):
jei pats.tekstas Redaguoti.toPlainText () == 'administratorius' ir pats.textEdit_2.toPlainText () == 'superuser':
spausdinti („autentifikuotas vartotojas“)
Kitas:
spausdinti („Neautentifikuotas vartotojas“)
# Paskelbkite scenarijaus nutraukimo metodą, kai spustelės mygtuką Atšaukti
def CancelClicked (savarankiškai):
išėjimas ()
# Sukurkite programos objektą
app = QtWidgets.QApplication (sys.argv)
# Sukurkite klasės objektą
forma = „MyApp“ ()
# Rodyti formą
forma.Rodyti()
# Paleiskite programos ar dialogo lango įvykių ciklą
programa.exec ()

Vykdžius aukščiau pateiktą scenarijų pasirodys toks dialogo langas.


Jei vartotojas įvedė neteisingą vartotojo vardą ar slaptažodį Prisijungti formą, tada spustelėjus Prisijungti mygtuką.


Jei vartotojas įveda teisingą vartotojo vardą ir slaptažodį Prisijungti formą, tada spustelėjus. pasirodys toks išvestis Prisijungti mygtuką.


Jei vartotojas spusteli Atšaukti mygtuką Prisijungti formą, tada dialogo langas išnyks.

Išvada

Ši pamoka parodė, kaip įdiegti Qt dizaineris ir kaip sukurti paprastą formą naudojant šią programą. Pamoka taip pat parodė, kaip tiesiogiai įkelti vartotojo sąsajos dialogo langą ir, pavertus jį į „Python“ scenarijų, rodoma kitoje šios mokymo programos dalyje. Tikimės, kad šis straipsnis padėjo jums geriau suprasti „Qt Designer“ naudojimą kuriant ir naudojant GUI programose.

Valdykite ir valdykite pelės judėjimą tarp kelių „Windows 10“ monitorių
„Dual Display Mouse Manager“ leidžia jums valdyti ir konfigūruoti pelės judėjimą tarp kelių monitorių, sulėtinant jo judėjimą šalia sienos. „Windows 1...
„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...
Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...