QPushButton metode
The QPushButton class ima veliko metod za izvajanje različnih nalog, povezanih z gumbi. Nekatere najpogosteje uporabljene metode tega razreda so omenjene spodaj:
Ime metode | Namen |
---|---|
besedilo () | Uporablja se za branje napisa gumba. |
setText () | Uporablja se za nastavitev besedila v naslovu gumba. |
setIcon () | Uporablja se za nastavitev ikone v napisu gumba. |
setDefault () | Uporablja se za nastavitev privzetega gumba. |
setEnabled () | Uporablja se za omogočanje ali onemogočanje gumbov. Vrednost Prav se uporablja za omogočanje gumba in vrednost Lažno se uporablja za onemogočanje gumba. |
setCheckable () | Uporablja se za ugotavljanje, ali je gumb pritisnjen ali spuščen. |
isChecked () | Uporablja se za branje stanja gumba, ki je logična vrednost. |
preklop () | Uporablja se za preklapljanje med stanji. Če je trenutna vrednost stanja gumba Prav, potem se bo vrednost spremenila v Lažno, in obratno. |
Uporaba gumba QPushButton
Naslednji razdelki ponujajo nekaj preprostih primerov za razlago uporabe QPushButton.
Primer 1: Ustvarite preprost gumb
Naslednji skript se uporablja za ustvarjanje enega samega gumba v oknu. Skript bo priložil funkcijo po meri z dogodkom s klikom gumba, da preveri, ali je bil gumb kliknjen. V oknu se prikaže gumb, ki sledi izvedbi kode. Če uporabnik klikne gumb, besedilo 'Gumb je pritisnjen' bo prikazano v nalepki.
# Uvozite potrebne moduleuvoz sys
iz PyQt5.QtWidgets uvozijo QApplication, QWidget, QPushButton, QLabel
# Določite razred, da ustvarite en sam gumb
razred ButtonExample (QWidget):
def __init __ (samo):
# Pokliči nadrejeni konstruktor
super ().__v__()
# Ustvari gumb
sebe.btn = QPushButton ('Klikni me', samo)
# Nastavite besedilo opisa gumba
sebe.btn.setToolTip ('To je preprost gumb')
# Nastavite geometrijo gumba
sebe.btn.setGeometry (100, 20, 100, 30)
# Funkcija klica, ko kliknete gumb
sebe.btn.kliknili.povezati (samo.onClicked)
# Določite oznako na dnu gumba
sebe.msgLabel = QLabel (", samo)
# Nastavite geometrijo nalepke
sebe.msgLabel.setGeometry (90, 60, 290, 60)
# Nastavite naslov okna
sebe.setWindowTitle ('Uporaba gumba PushButton')
# Nastavite geometrijo glavnega okna
sebe.setGeometry (10, 10, 300, 150)
# Nastavite položaj glavnega okna na zaslonu
sebe.premakni (850, 300)
# Prikažite okno
sebe.pokaži ()
# Določite funkcijo za obravnavo dogodka klika gumba
def onClicked (self):
# Nastavite besedilo za nalepko
sebe.msgLabel.setText ('Pritisnite gumb.')
# Ustvari objekt aplikacije in zaženi aplikacijo
app = QApplication (sys.argv)
button = ButtonExample ()
app.exec ()
Po izvedbi skripta se prikaže naslednje okno.
Če uporabnik klikne Çklikni me gumb, nato se bo v naslovu pod gumbom pojavilo naslednje besedilo.
2. primer: Ustvarite več gumbov
Naslednji skript bo ustvaril več tipk z uporabo QPushButton razred. V skriptu sta ustvarjena dva gumba. Kliknjeni dogodekDa'je pritrjen na metodo z imenom btn1_onClicked (), in kliknjeni dogodek 'Ne'je pritrjen na metodo z imenom btn2_onClicked (). Napis, ustvarjen pod gumbi, bo prikazal določeno sporočilo na podlagi gumba, ki ga je kliknil uporabnik. The setGeometry () Funkcija se uporablja za vsako nalepko in gumb za nastavitev položaja predmetov v oknu.
uvoz sysiz PyQt5.QtWidgets uvozi QApplication, QWidget, QPushButton, QLabel
razred MultiButtons (QWidget):
def __init __ (samo):
# Pokliči nadrejeni konstruktor
super ().__v__()
# Določite oznako na vrhu gumba
sebe.topLabel = QLabel ('
Ali imate radi python?
', jaz)# Nastavite geometrijo nalepke
sebe.topLabel.setGeometry (100, 20, 290, 50)
# Ustvari prvi gumb
sebe.btn1 = QPushButton ('Da', samo)
# Nastavite geometrijo gumba
sebe.btn1.setGeometry (130, 70, 60, 40)
# Funkcija klica, ko kliknete gumb
sebe.btn1.kliknili.povezati (samo.btn1_onClicked)
# Ustvari drugi gumb
sebe.btn2 = QPushButton ('Ne', samo)
# Nastavite geometrijo gumba
sebe.btn2.setGeometry (200, 70, 60, 40)
# Funkcija klica, ko kliknete gumb
sebe.btn2.kliknili.povezati (samo.btn2_onClicked)
# Določite oznako na dnu gumba
sebe.msgLabel = QLabel (", samo)
# Nastavite geometrijo nalepke
sebe.msgLabel.setGeometry (130, 120, 300, 80)
# Nastavite naslov okna
sebe.setWindowTitle ('Uporaba več tipk')
# Nastavite geometrijo glavnega okna
sebe.setGeometry (10, 10, 400, 200)
# Nastavite položaj glavnega okna na zaslonu
sebe.premakni (850, 300)
# Prikažite okno
sebe.pokaži ()
def btn1_onClicked (self):
# Nastavite besedilo za spodnjo nalepko
sebe.msgLabel.setText ('
Kliknili ste Da.
')def btn2_onClicked (self):
# Nastavite besedilo za spodnjo nalepko
sebe.msgLabel.setText ('
Kliknili ste Ne.
')# Ustvari objekt aplikacije in zaženi aplikacijo
app = QApplication (sys.argv)
button = MultiButtons ()
app.exec ()
Po izvedbi skripta se prikaže naslednje okno.
Če uporabnik klikne Da gumb, sporočilo, 'Kliknili ste Da'bo prikazano kot besedilo nalepke.
Če uporabnik klikne Ne gumb, sporočilo, 'Kliknili ste Ne bo prikazano kot besedilo nalepke.
Zaključek
Razred QPushButton omogoča uporabnikom, da ustvarijo enega ali več gumbov glede na zahteve aplikacije. Ta vadnica je pokazala uporabo tega razreda za ustvarjanje enega ali več gumbov ter kako ravnati z dogodki klikov gumbov s pomočjo funkcij za obdelavo dogodkov po meri.