Piton

Kako se koristi PyQt GUI Builder

Kako se koristi PyQt GUI Builder

PyQt je popularna Pythonova biblioteka koja se koristi za lakšu implementaciju grafičkih aplikacija u Pythonu. Ova knjižnica dolazi s alatom za izgradnju graditelja GUI (grafičko korisničko sučelje) Qt dizajner. GUI se može brzo izgraditi u Pythonu pomoću značajke povlačenja i ispuštanja u ovoj knjižnici, iako ovaj alat nema mogućnost uklanjanja pogrešaka poput standardnog IDE-a. Ovaj vodič vam pokazuje kako implementirati GUI koristeći Qt Designer klasu PyQt.

Preduvjeti

Morate instalirati alat Qt Designer prije vježbanja primjera iz ovog vodiča. Izvedite sljedeće naredbe da biste instalirali Qt dizajner na vašem sustavu:

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

Otvorite Qt Designer

Pokrenite sljedeću naredbu da biste promijenili trenutno mjesto direktorija u Qt dizajner mapu.

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

Pokrenite sljedeću naredbu da biste otvorili aplikaciju Qt Designer.

$ ./dizajner

Ako je Qt dizajner je pravilno instaliran, pojavit će se sljedeći prozor. The Widget Okvir prikazan na lijevoj strani glavnog prozora sadrži razne widgete pomoću kojih možete dizajnirati korisničko sučelje aplikacije. The Novi obrazac prozor služi za stvaranje novog prozora pomoću zadanih gumba. Prozori prikazani na desnoj strani glavnog prozora pružaju informacije o dodacima koji se mogu čitati ili mijenjati.

Izradite prvi obrazac pomoću Qt Designera

Da bismo započeli s dizajniranjem sučelja za aplikaciju Python, kliknite na Stvoriti u sljedećem prozoru za otvaranje dijaloškog okvira s dva zadana gumba.

Zatim ćemo dizajnirati obrazac za prijavu pomoću Dodaci za oznake, uređivanje teksta i tipke. Dijaloški okvir bit će spremljen s imenom Prijava.ui, koji će se koristiti kasnije u Python skripti. The QObject ime će biti promijenjeno u Dijalog za prijavu koristiti Prozor uređivača svojstava ove prijave.

Korištenje dijaloškog okvira za prijavu

Datoteka korisničkog sučelja koju je kreirao Qt dizajner može se koristiti u Python skripti na dva načina. Datoteka se može koristiti izravno u Python skripti ili pretvorenoj Python datoteci Qt dizajner datoteka se može koristiti u Python skripti. Oba načina korištenja dijaloškog okvira Qt dizajner prikazani su u sljedećem odjeljku vodiča.

Izravno pokrenite datoteku Qt Designer

UIC modul knjižnice PyQt koristi se za učitavanje datoteke koju je stvorio Qt Designer i loadUI () metoda UIC modula koristi se za učitavanje UI datoteke. Sljedeća skripta pokazuje kako učitati Qt dizajner datoteka s imenom Prijaviti se.ui koje smo prije stvorili. Potrebni moduli uvezeni su na početku skripte. Objekt aplikacije kreira se pomoću QApplication (), i Qt dizajner datoteka se učitava pomoću loadUI () metoda. Dalje, izvršiti () metoda poziva se za pokretanje petlje događaja aplikacije.

# Uvoz sys modula
import sys
# Uvezite QtWidgete i uic module
iz PyQt5 uvozi QtWidgete, uic
# Stvori objekt aplikacije
app = QtWidgeti.QApplication (sys.argv)
# Učitajte GUI obrazac i prikaz
prozor = uic.loadUi ("Prijava.ui ")
prozor.pokazati()
# Pokrenite petlju događaja aplikacije ili dijaloškog okvira
app.izvršiti ()

Sljedeći dijaloški okvir pojavit će se nakon izvršavanja gornje skripte.

Pokrenite UI datoteku pretvaranjem u datoteku Python

UI datoteka koju je stvorio Qt Designer može se pretvoriti u datoteku Python pomoću pyuic5 naredba. Pokrenite sljedeću naredbu za pretvorbu datoteke Prijaviti se.ui datoteke u obrazac za prijavu.py datoteka. The Prijaviti se.ui datoteka mora biti pohranjena na trenutnom mjestu da bi se izvršila sljedeća naredba; u suprotnom će se generirati pogreška.

$ pyuic5 Prijava.ui -o obrazac za prijavu.py

Sljedeći će se kôd generirati u obrazac za prijavu.py datoteku nakon izvršavanja gornje naredbe.

# - * - kodiranje: utf-8 - *-
# Implementacija obrasca generirana čitanjem ui datoteke 'Prijava.ui '
#
# Izradio: PyQt5 UI generator koda 5.12.3
#
# UPOZORENJE! Sve promjene napravljene u ovoj datoteci bit će izgubljene!
iz PyQt5 uvezite QtCore, QtGui, QtWidgets
klasa Ui_Logindialog (objekt):
def setupUi (self, Logindialog):
Dijalog za prijavu.setObjectName ("Dialog za prijavu")
Dijalog za prijavu.promjena veličine (400, 224)
sebe.textEdit = QtWidgets.QTextEdit (dijalog za prijavu)
sebe.textEdit.setGeometry (QtCore.QRect (130, 70, 221, 31))
sebe.textEdit.setObjectName ("textEdit")
sebe.textEdit_2 = QtWidgeti.QTextEdit (dijalog za prijavu)
sebe.textEdit_2.setGeometry (QtCore.QRect (130, 120, 221, 31))
sebe.textEdit_2.setObjectName ("textEdit_2")
sebe.label = QtWidgets.QLabel (dijalog za prijavu)
sebe.označiti.setGeometry (QtCore.QRect (140, 20, 131, 31))
font = QtGui.QFont ()
font.setPointSize (18)
sebe.označiti.setFont (font)
sebe.označiti.setObjectName ("oznaka")
sebe.label_2 = QtWidgeti.QLabel (dijalog za prijavu)
sebe.oznaka_2.setGeometry (QtCore.QRect (36, 70, 81, 20))
sebe.oznaka_2.setObjectName ("label_2")
sebe.label_3 = QtWidgeti.QLabel (dijalog za prijavu)
sebe.oznaka_3.setGeometry (QtCore.QRect (40, 120, 67, 17))
sebe.oznaka_3.setObjectName ("label_3")
sebe.btnLogin = QtWidgeti.QPushButton (dijalog za prijavu)
sebe.btnLogin.setGeometry (QtCore.QRect (150, 170, 89, 25))
sebe.btnLogin.setObjectName ("btnLogin")
sebe.btnCancel = QtWidgeti.QPushButton (dijalog za prijavu)
sebe.btnOdustani.setGeometry (QtCore.QRect (250, 170, 89, 25))
sebe.btnOdustani.setObjectName ("btnCancel")
sebe.retranslateUi (dijalog za prijavu)
QtCore.QMetaObject.connectSlotsByName (dijalog za prijavu)
def retranslateUi (self, Logindialog):
_translate = QtCore.QCoreApplication.Prevedi
Dijalog za prijavu.setWindowTitle (_translate ("Logindialog", "Dialog"))
sebe.označiti.setText (_translate ("Dialog za prijavu", "Obrazac za prijavu"))
sebe.oznaka_2.setText (_translate ("Logindialog", "Username"))
sebe.oznaka_3.setText (_translate ("Logindialog", "Password"))
sebe.btnLogin.setText (_translate ("Logindialog", "Login"))
sebe.btnOdustani.setText (_translate ("Logindialog", "Cancel"))

Sljedeće će prikazati Prijaviti se dijaloški okvir uvozom datoteke obrazac za prijavu.py datoteka stvorena pomoću pyuic5 naredba. Objekt aplikacije izrađuje se pomoću QApplication (), i dijaloški okvir Prijava učitava se pomoću setupUi () metoda. Gumb za prijavu nalazi se uz loginClicked () metoda za provjeru jesu li korisničko ime i lozinka preuzeti od korisnika valjani. The Otkazati gumb je pričvršćen na cancelClicked () metoda za napuštanje aplikacije. The izvršiti () metoda poziva se za pokretanje petlje događaja aplikacije.

# Uvoz QtWidgeta
iz PyQt5 uvoza QtWidgeta
# Uvezi sys
import sys
# Uvezite obrazac za prijavu ui
uvoz obrazac za prijavu
# Definirajte klasu za postavljanje korisničkog sučelja
klase MyApp (QtWidgets.QMainWindow, obrazac za prijavu.Ui_Logindialog):
def __init __ (self, parent = None):
super (MyApp, ja).__init __ (roditelj)
# Učitajte obrazac za prijavu
sebe.setupUi (samo)
# Pozovite metodu loginClicked ()
sebe.btnLogin.kliknuo.povezati (samo.prijavaKliknuto)
# Pozovite metodu cancelClicked ()
sebe.btnOdustani.kliknuo.povezati (samo.poništiKlik)
# Navedite način provjere korisničkog imena i lozinke kada klikne gumb Prijava
def loginClicked (self):
ako ja.textEdit.toPlainText () == 'admin' i self.textEdit_2.toPlainText () == 'superuser':
print ('Ovjereni korisnik')
drugo:
ispis ('Neovlašteni korisnik')
# Izjavite metodu za prekid skripte kada klikne gumb Odustani
def cancelClicked (self):
Izlaz()
# Stvori objekt aplikacije
app = QtWidgeti.QApplication (sys.argv)
# Stvori objekt klase
obrazac = MyApp ()
# Prikažite obrazac
oblik.pokazati()
# Pokrenite petlju događaja aplikacije ili dijaloškog okvira
app.izvršiti ()

Sljedeći dijaloški okvir pojavit će se nakon izvršavanja gornje skripte.


Ako korisnik unese pogrešno korisničko ime ili lozinku u Prijaviti se obrazac, tada će se sljedeći izlaz pojaviti nakon klika na Prijaviti se dugme.


Ako korisnik unese ispravno korisničko ime i lozinku u Prijaviti se obrazac, tada će se sljedeći izlaz pojaviti nakon klika na Prijaviti se dugme.


Ako korisnik klikne na Otkazati gumb u Prijaviti se obrazac, tada će dijaloški okvir nestati.

Zaključak

Ovaj vam je vodič pokazao kako instalirati Qt dizajner i kako dizajnirati jednostavan obrazac pomoću ove aplikacije. Vodič vam je također pokazao kako izravno učitati dijaloški okvir korisničkog sučelja, a nakon pretvorbe u skriptu Python prikazani su u drugom dijelu ovog vodiča. Nadamo se da vam je ovaj članak pomogao da bolje razumijete upotrebu Qt Designera za izgradnju i korištenje GUI-a u aplikacijama.

WinMouse vam omogućuje prilagodbu i poboljšanje kretanja pokazivača miša na Windows računalu
Ako želite poboljšati zadane funkcije pokazivača miša, upotrijebite besplatni program WinMouse. Dodaje više značajki koje će vam pomoći da na najbolji...
Lijevi gumb miša ne radi u sustavu Windows 10
Ako s prijenosnim računalom ili stolnim računalom koristite namjenski miš, ali lijevi gumb miša ne radi u sustavu Windows 10/8/7 iz nekog razloga evo ...
Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...