„Python“

Kaip naudoti „PyQt“ žymimąjį laukelį?

Kaip naudoti „PyQt“ žymimąjį laukelį?

Pažymėtas langelis naudojamas nuliui ar daugiau parinkčių iš daugelio parinkčių, naudojant grafinę vartotojo sąsają. Formą su žymimuoju langeliu galima sukurti naudojant „QCheckBox“ klasę „Python“ scenarijuje arba naudojant „QCheckBox“ valdiklis Qt dizaineris nerašydamas jokio scenarijaus.

Kai forma su žymimuoju langeliu sukuriama naudojant „QCheckBox“ klasė būsenaPakeista.Prisijungti() Funkcija yra kviečiama taikyti veiksmus, kuriuos atlieka vartotojo įvestis. Jei vartotojas pažymėjo bet kurią žymimąjį laukelį, tada reikšmė „QtCore“.Qt.patikrinta bus Tiesa. Naudojant galima sukurti kelis žymimuosius laukelius su vienu pasirinkimu, pvz., Radijo mygtuką „QbuttonGroup“ klasė.

Kaip formą su žymimuoju langeliu galima sukurti rašant „Python“ scenarijų, parodyta šioje pamokoje.

Būtini „QCheckBox“ metodai

„QCheckBox“ klasė turi daug funkcijų, skirtų atlikti įvairių tipų užduotis su žymimuoju laukeliu. Kai kurie dažniausiai naudojami šios klasės metodai aprašyti toliau:

Metodo pavadinimas Tikslas
isChecked () Tai grąžina loginę vertę. Kai vartotojas spustelėja pažymėti žymimąjį laukelį, jis grąžina tiesą, priešingu atveju - klaidingą.
setChecked () Jis naudojamas žymės langelio būsenai pakeisti. Tikroji vertė nustatoma, kad būtų pažymėtas žymimasis laukelis, o klaidinga reikšmė, kad žymimasis laukelis nebūtų pažymėtas.
tekstas () Jis naudojamas nuskaityti žymės langelio etiketę.
setText () Jis naudojamas žymės langelio etiketei nustatyti.
„isTriState“ () Tai grąžina loginę vertę. Jis naudojamas norint patikrinti tri būseną, kad žinotumėte, ar žymimasis laukelis įjungtas, ar ne.
„setTriState“ () Jis naudojamas įjungti trečiąją žymimojo laukelio būseną, nurodančią neutralią būseną.

Sukurkite formą su žymimuoju laukeliu naudodami „QCheckBox Class“:

Pažymėjimo langelio naudojimas parodytas šiame skyriuje, naudojant skirtingų tipų pavyzdžius. Vieno žymės langelio naudojimas, kaip parodyta pirmame pavyzdyje, ir kelių žymimųjų langelių naudojimas parodytas antrame pavyzdyje.

1 pavyzdys: Vieno žymimo langelio sukūrimas

Vieno žymimo langelio sukūrimo būdas naudojant „QCheckBox“ klasė ir skaitoma vartotojo pateikto žymimo langelio įvesties reikšmė, rodomi šiame pavyzdyje. Būtini moduliai importuojami scenarijaus pradžioje. Pirmiau pateiktame žymės langelyje naudojama etiketė, suteikianti informaciją vartotojui. Jei vartotojas spustelėja žymimąjį laukelį, kad patikrintų, scenarijus atspausdins:Oho! Jums patinka programuoti“, Kitaip scenarijus bus atspausdintas,O ne!, Jums nepatinka programuoti“.

# Importuokite būtinus modulius
importuoti sistemas
iš „PyQt5“ importuokite „QtCore“, „QtWidgets“
iš PyQt5.„QtWidgets“ importuoja „QMainWindow“, „QCheckBox“, „QLabel“, „QVBoxLayout“, „QDesktopWidget“
# Apibrėžkite formos sukūrimo klasę su vienu žymimuoju laukeliu
klasės „SingleCheckbox“ (QMainWindow):
def __init __ (savęs):
super ().__init __ ()
# Sukurkite vartotojui etiketės tekstą
lb = QLabel ("Ar jums patinka programuoti?", savarankiškai)
lb.setGeometry (20, 20, 200, 20)
lb.judėti (20, 20)
# Sukurkite žymimąjį laukelį su etikete
cb = QCheckBox („Taip“, pats)
cb.būsenaPakeista.prisijungti (savarankiškai.Patikrinti_atsakyti)
cb.judėti (20, 50)
# Nustatykite vertikalų Qt išdėstymą
vbox = QVBoxLayout ()
„vbox“.„addWidget“ (svarai)
„vbox“.addWidget (cb)
# Nustatykite lango pavadinimą ir dydį
savarankiškai.setWindowTitle („Forma su vienu žymimuoju laukeliu“)
savarankiškai.setGeometry (60, 60, 300, 100)
# Rodyti langą ekrano centre
laimėti = save.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centras ()
laimėti.„moveCenter“ (poz.)
savarankiškai.judėti (laimėti.viršuje kairėje())
savarankiškai.Rodyti()
# Apibrėžkite funkciją, kad patikrintumėte vartotojo įvestį
def Check_Answer (savastis, būsena):
jei būsena == QtCore.Qt.Patikrinta:
spausdinti ("Oho! Jums patinka programuoti.")
Kitas:
spausdinti ("O ne!, Jums nepatinka programuoti.")
# Sukurkite programos objektą ir vykdykite programą
app = QtWidgets.QApplication (sys.argv)
forma = SingleCheckbox ()
programa.exec ()

Vykdant scenarijų pasirodys šis langas su žymimuoju langeliu.


Šioje išvestyje vartotojas du kartus pažymėjo žymimąjį laukelį ir vieną kartą panaikino žymėjimą.

2 pavyzdys: kelių žymimųjų langelių kūrimas

Kelių žymimųjų laukelių kūrimo būdas naudojant „QCheckbox“ klasė ir skaitomos kelios daugelio žymimųjų langelių vertės yra parodytos šiame pavyzdyje. Prie lango pridedamos dvi etiketės ir trys žymės langeliai. Pirmoji etiketė pridedama žymės langelių pradžioje, kad būtų pateikta informacija vartotojui, o antroji etiketė pridedama žymės langelių pabaigoje, kad būtų rodomos pažymėtų žymimųjų laukelių arba žymimųjų laukelių vertės.

# Importuokite būtinus modulius
importuoti sistemas
iš PyQt5.„QtWidgets“ importavimas („QWidget“, „QCheckBox“, „QApplication“, „QVBoxLayout“, „QLabel“, „QDesktopWidget“)
# Apibrėžkite formą kuriant formą su keliais žymės langeliais
klasė „MultipleCheckbox“ (QWidget):
def __init __ (savęs):
super ().__init __ ()
# Nustatykite vartotojo etiketės tekstą
lb = QLabel ("Pasirinkite savo mėgstamą (-us) maistą (-us):", pats)
lb.setGeometry (20, 20, 100, 20)
lb.judėti (20, 20)
# Sukurkite tris žymimuosius laukelius
cb1 = QCheckBox („Šokoladinis pyragas“, pats)
cb1.judėti (20, 70)
cb1.būsenaPakeista.prisijungti (lambda: savęs.Pasirinkta_Vertė (cb1))
cb2 = QCheckBox („ledai“, patys)
cb2.judėti (20, 90)
cb2.būsenaPakeista.prisijungti (lambda: savęs.Pasirinkta_Vertė (cb2))
cb3 = QCheckBox („Pasta“, savaime)
cb3.judėti (20, 110)
cb3.būsenaPakeista.prisijungti (lambda: savęs.Pasirinkta_Vertė (cb3))
savarankiškai.label = QLabel („Nieko nepasirinkta“)
savarankiškai.etiketė.judėti (20, 150)
# Nustatykite vertikalų Qt išdėstymą
vbox = QVBoxLayout ()
„vbox“.„addWidget“ (svarai)
„vbox“.addWidget (cb1)
„vbox“.addWidget (cb2)
„vbox“.addWidget (cb3)
„vbox“.addWidget (self.etiketė)
savarankiškai.„setLayout“ („vbox“)
savarankiškai.setWindowTitle ('Forma su keliais langeliais')
savarankiškai.setGeometry (60, 60, 350, 200)
savarankiškai.lblText = "
# Rodyti langą ekrano centre
laimėti = save.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centras ()
laimėti.„moveCenter“ (poz.)
savarankiškai.judėti (laimėti.viršuje kairėje())
savarankiškai.Rodyti()
# Apibrėžkite funkciją skaityti vartotojo įvestį
def Selected_Value (savarankiškai, btn):
jei pats.lblText != ":
str = savęs.lblText
strArray = str.padalinti (',')
savarankiškai.lblText = "
for val in strArray:
jei btn.tekstas () != val:
jei pats.lblText == ":
savarankiškai.lblText = val
Kitas:
savarankiškai.lblText + = ',' + val
jei btn.isChecked () == Tiesa:
jei pats.lblText == ":
savarankiškai.lblText = btn.tekstas ()
Kitas:
savarankiškai.lblText + = ',' + btn.tekstas ()
Kitas:
jei btn.isChecked () == Tiesa:
jei pats.lblText == ":
savarankiškai.lblText = btn.tekstas ()
Kitas:
savarankiškai.lblText + = ',' + btn.tekstas ()
savarankiškai.etiketė.setText ('Jūs pasirinkote \ n' + save.lblText)
# Sukurkite programos objektą ir vykdykite programą
app = QApplication (sys.argv)
ex = „MultipleCheckbox“ ()
sys.išėjimas (ap.exec_ ()

Vykdant scenarijų pasirodys šis langas. Numatytoji antrosios etiketės vertė yra „Niekas nepasirinktas“Ir etiketės vertė bus pakeista, kai vartotojas pažymės arba nepažymės bet kurio žymimo langelio.


Šioje išvestyje vartotojas pažymi du žymimuosius laukelius, o antrosios etiketės vertė pakeičiama į „Šokoladas, makaronai“.

Išvada

Vienos ar kelių žymimųjų langelių apibrėžimo ir pažymėtų žymimųjų langelių reikšmių nuskaitymo būdas šioje instrukcijoje buvo paaiškintas naudojant du paprastus pavyzdžius. Galima apibrėžti žymimųjų langelių grupes, kad būtų galima pasirinkti tam tikrą žymimąjį laukelį iš grupės, kuri čia nerodoma.

Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...
Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...
5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...