Python

Ako používať začiarkavacie políčko PyQt?

Ako používať začiarkavacie políčko PyQt?

Začiarkavacie políčko sa používa na výber nuly alebo viacerých možností z mnohých možností pomocou grafického používateľského rozhrania. Formulár so začiarkavacím políčkom je možné vytvoriť pomocou QCheckBox triedy v skripte Python alebo pomocou QCheckBox miniaplikácia Návrhár Qt bez písania skriptu.

Keď sa vytvorí formulár so začiarkavacím políčkom pomocou QCheckBox triedy teda stateChanged.pripojiť () sa volá funkcia na vykonanie akcie vykonanej na základe vstupu používateľa. Ak používateľ zaškrtol ktorúkoľvek možnosť začiarkavacieho políčka, potom hodnota QtCore.Qt.skontrolované bude pravda. Viacero začiarkavacích políčok s jedným výberom, ako je napríklad prepínač, je možné vytvoriť pomocou QbuttonGroup trieda.

V tejto príručke je uvedené, ako je možné vytvoriť formulár so začiarkavacím políčkom napísaním skriptu Python.

Nevyhnutné metódy QCheckBoxu

QCheckBox trieda má veľa funkcií na vykonávanie rôznych typov úloh pomocou začiarkavacieho políčka. Niektoré najbežnejšie používané metódy tejto triedy sú opísané nižšie:

Názov metódy Účel
isChecked () Vráti boolovskú hodnotu. Keď používateľ klikne na začiarknutie políčka, vráti hodnotu True, v opačnom prípade vráti hodnotu False.
setChecked () Používa sa na zmenu stavu začiarkavacieho políčka. Skutočná hodnota je nastavená tak, aby bolo začiarknuté políčko, a nesprávna hodnota, aby bolo začiarkavacie políčko nezačiarknuté.
text () Používa sa na prečítanie štítka začiarkavacieho políčka.
setText () Používa sa na nastavenie označenia začiarkavacieho políčka.
isTriState () Vráti boolovskú hodnotu. Používa sa na kontrolu tri stavu, aby sa zistilo, či je začiarkavacie políčko povolené alebo nie.
setTriState () Používa sa na povolenie tretieho stavu začiarkavacieho políčka, ktoré označuje neutrálny stav.

Vytvorte formulár pomocou začiarkavacieho políčka pomocou triedy QCheckBox:

Použitia tohto začiarkavacieho políčka sú v tejto časti zobrazené pomocou rôznych typov príkladov. V jednom príklade je použitie jedného začiarkavacieho políčka, ako je uvedené v prvom príklade, a použitie viacerých začiarkavacích políčok.

Príklad 1: Vytvorenie jedného začiarkavacieho políčka

Spôsob vytvárania jedného začiarkavacieho políčka pomocou QCheckBox triedy a načítanie vstupnej hodnoty začiarkavacieho políčka zadaného používateľom sú zobrazené v tomto príklade. Potrebné moduly sa importujú na začiatok skriptu. Vo vyššie uvedenom políčku sa používa štítok, ktorý poskytuje informácie pre používateľa. Ak používateľ klikne na začiarkavacie políčko na začiarknutie, skript sa vytlačí: “Wow! Máte radi programovanie„, Inak sa skript vytlačí,“ale nie!, Nemáte radi programovanie“.

# Importujte potrebné moduly
import sys
z PyQt5 importujte QtCore, QtWidgets
z PyQt5.QtWidgets importujú QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Definujte triedu na vytvorenie formulára pomocou jediného začiarkavacieho políčka
trieda SingleCheckbox (QMainWindow):
def __init __ (self):
Super().__init __ ()
# Vytvorte text štítku pre používateľa
lb = QLabel ("Máte radi programovanie?", samostatne)
lb.setGeometry (20, 20, 200, 20)
lb.ťah (20, 20)
# Vytvorte začiarkavacie políčko so štítkom
cb = QCheckBox ('Áno', sám)
cb.stateChanged.spojiť (seba.Check_Answer)
cb.ťah (20, 50)
# Nastavte vertikálne rozloženie Qt
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb)
# Nastavte nadpis a veľkosť okna
ja.setWindowTitle ('Formulár s jednoduchým začiarkavacím políčkom')
ja.setGeometry (60, 60, 300, 100)
# Zobrazte okno v strede obrazovky
vyhrať = ja.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().stred ()
vyhrať.moveCenter (poz)
ja.pohnúť sa (vyhrať.hore v ľavo())
ja.šou()
# Definujte funkciu na kontrolu vstupu používateľa
def Check_Answer (self, state):
if state == QtCore.Qt.Skontrolované:
tlač („Páni! Máte radi programovanie.„)
inak:
print („Ach nie!, Nemáte radi programovanie.„)
# Vytvorte objekt aplikácie a spustite ju
app = QtWidgets.QAplikácia (sys.argv)
form = SingleCheckbox ()
aplikácia.exec ()

Po vykonaní skriptu sa zobrazí nasledujúce okno so začiarkavacím políčkom.


V nasledujúcom výstupe používateľ dvakrát zaškrtol políčko a raz políčko nezrušil.

Príklad 2: Vytvorenie viacerých začiarkavacích políčok

Spôsob vytvárania viacerých začiarkavacích políčok pomocou QCheckbox trieda a čítanie viacerých hodnôt viacerých začiarkavacích políčok sú zobrazené v tomto príklade. Do okna sú pridané dva štítky a tri začiarkavacie políčka. Prvý štítok sa pridá na začiatok začiarkavacích políčok, aby poskytol informácie pre používateľa, zatiaľ čo druhý štítok sa pridá na koniec začiarkavacích políčok, aby sa zobrazili hodnoty vybratého začiarkavacieho políčka alebo začiarkavacích políčok.

# Importujte potrebné moduly
import sys
z PyQt5.Import QtWidgets (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Definujte triedu na vytvorenie formulára pomocou viacerých začiarkavacích políčok
trieda MultipleCheckbox (QWidget):
def __init __ (self):
Super().__init __ ()
# Nastaviť text štítku pre používateľa
lb = QLabel ("Vyberte svoje obľúbené jedlo:", vlastné)
lb.setGeometry (20, 20, 100, 20)
lb.ťah (20, 20)
# Vytvorte tri začiarkavacie políčka
cb1 = QCheckBox ('Chocolate Cake', self)
cb1.ťah (20, 70)
cb1.stateChanged.pripojiť (lambda: ja.Selected_Value (cb1))
cb2 = QCheckBox ('zmrzlina', sama)
cb2.ťah (20, 90)
cb2.stateChanged.pripojiť (lambda: ja.Selected_Value (cb2))
cb3 = QCheckBox ('Cestoviny', vlastné)
cb3.ťah (20, 110)
cb3.stateChanged.pripojiť (lambda: ja.Selected_Value (cb3))
ja.label = QLabel ('Nič vybrané')
ja.štítok.ťah (20, 150)
# Nastavte vertikálne rozloženie Qt
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb1)
vbox.addWidget (cb2)
vbox.addWidget (cb3)
vbox.addWidget (vlastné.štítok)
ja.setLayout (vbox)
ja.setWindowTitle ('Formulár s viacerými zaškrtávacími políčkami')
ja.setGeometry (60, 60, 350, 200)
ja.lblText = "
# Zobrazte okno v strede obrazovky
vyhrať = ja.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().stred ()
vyhrať.moveCenter (poz)
ja.pohnúť sa (vyhrať.hore v ľavo())
ja.šou()
# Definujte funkciu na čítanie vstupu používateľa
def Selected_Value (self, btn):
ak ja.lblText != ":
str = ja.lblText
strArray = str.split (',')
ja.lblText = "
pre val v strArray:
ak btn.text () != val:
ak ja.lblText == ":
ja.lblText = val
inak:
ja.lblText + = ',' + val
ak btn.isChecked () == Pravda:
ak ja.lblText == ":
ja.lblText = btn.text ()
inak:
ja.lblText + = ',' + btn.text ()
inak:
ak btn.isChecked () == Pravda:
ak ja.lblText == ":
ja.lblText = btn.text ()
inak:
ja.lblText + = ',' + btn.text ()
ja.štítok.setText ('Vybrali ste \ n' + seba.lblText)
# Vytvorte objekt aplikácie a spustite ju
app = QApplication (sys.argv)
ex = MultipleCheckbox ()
sys.výstup (app.exec_ ())

Po vykonaní skriptu sa zobrazí nasledujúce okno. Predvolená hodnota druhého štítku je „Nič nie je vybrané”A hodnota štítku sa zmení, keď používateľ začiarkne alebo zruší začiarknutie niektorého políčka.


V nasledujúcom výstupe používateľ zaškrtne dve začiarkavacie políčka a hodnota druhého štítku sa zmení na „Čokoláda, cestoviny“.

Záver

Spôsob definovania jedného alebo viacerých začiarkavacích políčok a čítanie hodnôt vybratých začiarkavacích políčok sme v tejto príručke vysvetlili pomocou dvoch jednoduchých príkladov. Skupiny začiarkavacích políčok je možné definovať tak, aby ste vybrali konkrétne začiarkavacie políčko zo skupiny, ktorá tu nie je zobrazená.

Hry Zadarmo a open source herné motory pre vývoj hier pre Linux
Zadarmo a open source herné motory pre vývoj hier pre Linux
Tento článok sa bude zaoberať zoznamom bezplatných a otvorených herných nástrojov, ktoré možno použiť na vývoj 2D a 3D hier v systéme Linux. Existuje ...
Hry Výukový program Shadow of the Tomb Raider pre Linux
Výukový program Shadow of the Tomb Raider pre Linux
Shadow of the Tomb Raider je dvanásty prírastok do série Tomb Raider - franšíza akčných adventúr vytvorená Eidosom Montrealom. Túto hru prijali kritic...
Hry Ako zvýšiť rýchlosť FPS v systéme Linux?
Ako zvýšiť rýchlosť FPS v systéme Linux?
FPS znamená Počet snímok za sekundu. Úlohou FPS je merať snímkovú frekvenciu pri prehrávaní videa alebo herných výkonoch. Jednoducho povedané, počet n...