Python

Kako uporabljati potrditveno polje PyQt?

Kako uporabljati potrditveno polje PyQt?

Potrditveno polje se uporablja za izbiro nič ali več možnosti med številnimi možnostmi z uporabo grafičnega uporabniškega vmesnika. Obrazec s potrditvenim poljem lahko ustvarite z uporabo QCheckBox razred v skriptu Python ali z uporabo QCheckBox gradnik Qt Designer brez pisanja kakršnega koli skripta.

Ko je obrazec s potrditvenim poljem ustvarjen z QCheckBox razred, torej stateChanged.povezati () funkcija se pokliče, da uporabi dejanje, ki ga izvede uporabnikov vnos. Če je uporabnik potrdil katero koli možnost potrditvenega polja, potem je vrednost QtCore.Qt.preverjeno bo res. Z uporabo lahko ustvarite več potrditvenih polj z enim samim izborom, na primer radijski gumb QbuttonGroup razred.

Kako je mogoče oblikovati obrazec s potrditvenim poljem s pisanjem skripta Python, je prikazano v tej vadnici.

Potrebne metode QCheckBox

QCheckBox class ima veliko funkcij za izvajanje različnih vrst nalog s potrditvenim poljem. Nekatere najpogosteje uporabljene metode tega razreda so opisane spodaj:

Ime metode Namen
isChecked () Vrne logično vrednost. Ko uporabnik klikne potrditveno polje, vrne True, sicer pa False.
setChecked () Uporablja se za spreminjanje stanja potrditvenega polja. True vrednost je nastavljena tako, da je potrditveno polje označeno, False vrednost pa nastavljeno tako, da potrditveno polje ni označeno.
besedilo () Uporablja se za branje nalepke potrditvenega polja.
setText () Uporablja se za nastavitev oznake potrditvenega polja.
isTriState () Vrne logično vrednost. Uporablja se za preverjanje tri-stanja, da se ve, ali je potrditveno polje omogočeno ali ne.
setTriState () Uporablja se za omogočanje tretjega stanja potrditvenega polja, ki označuje nevtralno stanje.

Ustvarite obrazec s potrditvenim poljem z uporabo razreda QCheckBox:

Uporabe potrditvenega polja so prikazane v tem razdelku z različnimi primeri. Uporaba enega potrditvenega polja, kot je prikazano v prvem primeru, in uporaba več potrditvenih polj sta prikazani v drugem primeru.

Primer 1: Ustvarjanje posameznega potrditvenega polja

Način ustvarjanja posameznega potrditvenega polja z uporabo QCheckBox razred in branje vhodne vrednosti potrditvenega polja, ki ga je zagotovil uporabnik, sta prikazana v tem primeru. Potrebni moduli se uvozijo na začetku skripta. Oznaka je uporabljena v zgornjem potrditvenem polju za zagotavljanje informacij za uporabnika. Če uporabnik klikne potrditveno polje za potrditev, se bo skript natisnil, "Vau! Všeč vam je programiranje", Sicer se bo skript natisnil,"Oh ne!, Ne marate programiranja".

# Uvozite potrebne module
uvoz sys
iz PyQt5 uvozi QtCore, QtWidgets
iz PyQt5.QtWidgets uvozi QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Določite razred za ustvarjanje obrazca z enim potrditvenim poljem
razred SingleCheckbox (QMainWindow):
def __init __ (samo):
super ().__v__()
# Ustvari besedilo nalepke za uporabnika
lb = QLabel ("Ali radi programirate?", jaz)
lb.setGeometry (20, 20, 200, 20)
lb.premakni (20, 20)
# Ustvarite potrditveno polje z oznako
cb = QCheckBox ('Da', samo)
cb.stateChanged.povezati (samo.Check_Answer)
cb.premakni (20, 50)
# Nastavite navpično postavitev Qt
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb)
# Nastavite naslov in velikost okna
sebe.setWindowTitle ('Obrazec z enim potrditvenim poljem')
sebe.setGeometry (60, 60, 300, 100)
# Prikažite okno na sredini zaslona
zmaga = sam.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().center()
zmaga.moveCenter (poz)
sebe.premakniti (zmagati.topLeft ())
sebe.pokaži ()
# Določite funkcijo za preverjanje uporabnikovega vnosa
def Check_Answer (self, state):
če je stanje == QtCore.Qt.Preverjeno:
print ("Vau! Všeč vam je programiranje.")
sicer:
print ("Oh ne!, Ne marate programiranja.")
# Ustvari objekt aplikacije in zaženi aplikacijo
app = QtWidgets.QApplication (sys.argv)
form = SingleCheckbox ()
app.exec ()

Po izvedbi skripta se prikaže naslednje okno s potrditvenim poljem.


V naslednjem izhodu je uporabnik dvakrat potrdil in enkrat potrdil polje.

2. primer: Ustvarjanje več potrditvenih polj

Način ustvarjanja več potrditvenih polj z uporabo QCheckbox razreda in branje več vrednosti več potrditvenih polj so prikazani v tem primeru. V okno sta dodani dve nalepki in tri potrditvena polja. Prva oznaka je dodana na začetku potrditvenih polj, da zagotovi informacije za uporabnika, druga oznaka pa je dodana na koncu potrditvenih polj, da prikaže vrednosti izbranih potrditvenih polj.

# Uvozite potrebne module
uvoz sys
iz PyQt5.Uvoz QtWidgets (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Določite razred za ustvarjanje obrazca z več potrditvenimi polji
razred MultipleCheckbox (QWidget):
def __init __ (samo):
super ().__v__()
# Nastavite besedilo nalepke za uporabnika
lb = QLabel ("Izberite svojo najljubšo hrano (-e):", samo)
lb.setGeometry (20, 20, 100, 20)
lb.premakni (20, 20)
# Ustvarite tri potrditvena polja
cb1 = QCheckBox ('Čokoladna torta', samo)
cb1.premakni (20, 70)
cb1.stateChanged.povezati (lambda: self.Izbrana_vrednost (cb1))
cb2 = QCheckBox ('Sladoled', samo)
cb2.premakni (20, 90)
cb2.stateChanged.povezati (lambda: self.Izbrana_vrednost (cb2))
cb3 = QCheckBox ('Testenine', samo)
cb3.premakni (20, 110)
cb3.stateChanged.povezati (lambda: self.Izbrana_vrednost (cb3))
sebe.label = QLabel ('Nič izbranega')
sebe.nalepko.premakni (20, 150)
# Nastavite navpično postavitev Qt
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb1)
vbox.addWidget (cb2)
vbox.addWidget (cb3)
vbox.addWidget (self.nalepka)
sebe.setLayout (vbox)
sebe.setWindowTitle ('Obrazec z več potrditvenimi polji')
sebe.setGeometry (60, 60, 350, 200)
sebe.lblText = "
# Prikažite okno na sredini zaslona
zmaga = sam.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().center()
zmaga.moveCenter (poz)
sebe.premakniti (zmagati.topLeft ())
sebe.pokaži ()
# Določite funkcijo za branje uporabnikovih vnosov
def Selected_Value (self, btn):
če jaz.lblText != ":
str = samo.lblText
strArray = str.split (',')
sebe.lblText = "
za val v strArray:
če btn.besedilo () != val:
če jaz.lblText == ":
sebe.lblText = val
sicer:
sebe.lblText + = ',' + val
če btn.isChecked () == True:
če jaz.lblText == ":
sebe.lblText = btn.besedilo ()
sicer:
sebe.lblText + = ',' + btn.besedilo ()
sicer:
če btn.isChecked () == True:
če jaz.lblText == ":
sebe.lblText = btn.besedilo ()
sicer:
sebe.lblText + = ',' + btn.besedilo ()
sebe.nalepko.setText ('Izbrali ste \ n' + samo.lblText)
# Ustvari objekt aplikacije in zaženi aplikacijo
app = QApplication (sys.argv)
ex = MultipleCheckbox ()
sys.izhod (app.exec_ ())

Po izvedbi skripta se prikaže naslednje okno. Privzeta vrednost druge nalepke je »Nič ni izbrano"In vrednost nalepke se bo spremenila, ko bo uporabnik potrdil ali odkljukal katero koli potrditveno polje.


V naslednjem izhodu uporabnik preveri dve potrditveni polji in vrednost druge nalepke spremeni v »Čokolada, testenine".

Zaključek

Način določanja enega ali več potrditvenih polj in branja vrednosti izbranih potrditvenih polj je razložen v tej vadnici z dvema preprostima primeroma. Skupine potrditvenih polj lahko določite tako, da izberete določeno potrditveno polje iz skupine, ki tukaj ni prikazana.

Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...
Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...