Krajta

Jak používat zaškrtávací políčko PyQt?

Jak používat zaškrtávací políčko PyQt?

Zaškrtávací políčko slouží k výběru nulové nebo více možností z mnoha možností pomocí grafického uživatelského rozhraní. Formulář se zaškrtávacím políčkem lze vytvořit pomocí QCheckBox třídy v Python skriptu nebo pomocí QCheckBox widget z Návrhář Qt bez psaní jakéhokoli skriptu.

Při vytváření formuláře se zaškrtávacím políčkem pomocí QCheckBox třída tedy stateChanged.připojit() funkce je volána k provedení akce provedené vstupem uživatele. Pokud uživatel zaškrtnul jakoukoli možnost zaškrtávacího políčka, pak hodnota QtCore.Qt.kontrolovány bude pravda. Více zaškrtávacích políček s jediným výběrem, jako je Radio Button, lze vytvořit pomocí QbuttonGroup třída.

Jak lze vytvořit formulář se zaškrtávacím políčkem napsáním skriptu Pythonu, je uveden v tomto kurzu.

Nezbytné metody QCheckBoxu

QCheckBox třída má mnoho funkcí k provádění různých typů úkolů se zaškrtávacím políčkem. Níže jsou popsány některé nejčastěji používané metody této třídy:

Název metody Účel
isChecked () Vrátí logickou hodnotu. Když uživatel klepne na zaškrtávací políčko, vrátí True, jinak vrátí False.
setChecked () Používá se ke změně stavu zaškrtávacího políčka. Pravá hodnota je nastavena tak, aby bylo zaškrtnuto políčko, a False hodnota je nastavena tak, aby políčko nebylo zaškrtnuto.
text() Používá se ke čtení štítku zaškrtávacího políčka.
setText () Slouží k nastavení štítku zaškrtávacího políčka.
isTriState () Vrátí logickou hodnotu. Používá se ke kontrole trojstátu, aby se zjistilo, zda je zaškrtávací políčko povoleno nebo ne.
setTriState () Slouží k povolení třetího stavu zaškrtávacího políčka, které označuje neutrální stav.

Vytvořte formulář pomocí zaškrtávacího políčka pomocí třídy QCheckBox:

Použití zaškrtávacího políčka jsou v této části ukázána na různých typech příkladů. Použití jednoho zaškrtávacího políčka, jak je znázorněno v prvním příkladu, a použití více zaškrtávacích políček, je uvedeno ve druhém příkladu.

Příklad 1: Vytvoření jediného zaškrtávacího políčka

Způsob vytvoření jediného zaškrtávacího políčka pomocí QCheckBox třída a čtení vstupní hodnoty zaškrtávacího políčka poskytnuté uživatelem jsou uvedeny v tomto příkladu. Potřebné moduly se importují na začátek skriptu. Ve výše uvedeném zaškrtávacím políčku se používá štítek pro poskytnutí informací uživateli. Pokud uživatel zaškrtne toto políčko, skript se vytiskne: “Wow! Máte rádi programování„, Jinak se skript vytiskne,“Ach ne!, Nelíbí se vám programování“.

# Importujte potřebné moduly
import sys
z PyQt5 import QtCore, QtWidgets
z PyQt5.QtWidgets importují QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Definujte třídu pro vytvoření formuláře pomocí jediného zaškrtávacího políčka
třída SingleCheckbox (QMainWindow):
def __init __ (vlastní):
super ().__init __ ()
# Vytvořte text štítku pro uživatele
lb = QLabel ("Máte rádi programování?", já)
lb.setGeometry (20, 20, 200, 20)
lb.tah (20, 20)
# Vytvořte zaškrtávací políčko se štítkem
cb = QCheckBox ('Yes', self)
cb.stateChanged.připojit (já.Check_Answer)
cb.tah (20, 50)
# Nastavte svislé rozložení Qt
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb)
# Nastavte název a velikost okna
já.setWindowTitle ('Form with Single Checkbox')
já.setGeometry (60, 60, 300, 100)
# Zobrazte okno ve středu obrazovky
vyhrát = já.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centrum()
vyhrát.moveCenter (pozice)
já.tah (vyhrát.vlevo nahoře())
já.ukázat()
# Definujte funkci pro kontrolu vstupu uživatele
def Check_Answer (self, state):
if state == QtCore.Qt.Kontrolovány:
print ("Páni! Máte rádi programování.")
jiný:
print („Ach ne!, Nelíbí se vám programování.")
# Vytvořte objekt aplikace a spusťte aplikaci
app = QtWidgets.QApplication (sys.argv)
form = SingleCheckbox ()
aplikace.exec ()

Po spuštění skriptu se zobrazí následující okno se zaškrtávacím políčkem.


V následujícím výstupu uživatel dvakrát zaškrtnul políčko a jednou zaškrtnutí zrušil.

Příklad 2: Vytváření více zaškrtávacích políček

Způsob vytváření více zaškrtávacích polí pomocí QCheckbox třída a čtení více hodnot z více zaškrtávacích polí jsou uvedeny v tomto příkladu. Do okna jsou přidány dva štítky a tři zaškrtávací políčka. První štítek je přidán na začátek zaškrtávacích políček, aby poskytoval informace uživateli, zatímco druhý štítek je přidán na konec zaškrtávacích políček, aby zobrazoval hodnoty vybraného zaškrtávacího políčka nebo zaškrtávacích políček.

# Importujte potřebné moduly
import sys
z PyQt5.Import QtWidgets (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Definujte třídu pro vytvoření formuláře s více zaškrtávacími políčky
třída MultipleCheckbox (QWidget):
def __init __ (vlastní):
super ().__init __ ()
# Nastavit text štítku pro uživatele
lb = QLabel ("Vyberte své oblíbené jídlo:", já)
lb.setGeometry (20, 20, 100, 20)
lb.tah (20, 20)
# Vytvořte tři zaškrtávací políčka
cb1 = QCheckBox ('Chocolate Cake', self)
cb1.tah (20, 70)
cb1.stateChanged.připojit (lambda: já.Selected_Value (cb1))
cb2 = QCheckBox ('Ice-Cream', self)
cb2.tah (20, 90)
cb2.stateChanged.připojit (lambda: já.Selected_Value (cb2))
cb3 = QCheckBox ('Pasta', self)
cb3.tah (20, 110)
cb3.stateChanged.připojit (lambda: já.Selected_Value (cb3))
já.label = QLabel ('Nic není vybráno')
já.označení.tah (20, 150)
# Nastavte svislé rozložení Qt
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb1)
vbox.addWidget (cb2)
vbox.addWidget (cb3)
vbox.addWidget (vlastní.označení)
já.setLayout (vbox)
já.setWindowTitle ('Formulář s více zaškrtávacími políčky')
já.setGeometry (60, 60, 350, 200)
já.lblText = "
# Zobrazte okno ve středu obrazovky
vyhrát = já.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centrum()
vyhrát.moveCenter (pozice)
já.tah (vyhrát.vlevo nahoře())
já.ukázat()
# Definujte funkci pro čtení vstupu uživatele
def Selected_Value (self, btn):
pokud já.lblText != ":
str = já.lblText
strArray = str.split (',')
já.lblText = "
pro val v strArray:
pokud btn.text() != val:
pokud já.lblText == ":
já.lblText = val
jiný:
já.lblText + = ',' + val
pokud btn.isChecked () == True:
pokud já.lblText == ":
já.lblText = btn.text()
jiný:
já.lblText + = ',' + btn.text()
jiný:
pokud btn.isChecked () == True:
pokud já.lblText == ":
já.lblText = btn.text()
jiný:
já.lblText + = ',' + btn.text()
já.označení.setText ('Vybrali jste \ n' + sebe.lblText)
# Vytvořte objekt aplikace a spusťte aplikaci
aplikace = QApplication (sys.argv)
ex = MultipleCheckbox ()
sys.výstup (app.exec_ ())

Po spuštění skriptu se zobrazí následující okno. Výchozí hodnota druhého štítku je „Nic není vybráno“A hodnota štítku se změní, když uživatel zaškrtne nebo zruší zaškrtnutí některého políčka.


V následujícím výstupu uživatel zaškrtne dvě zaškrtávací políčka a hodnota druhého štítku se změní na „Čokoláda, těstoviny“.

Závěr

Způsob definování jednoho nebo více zaškrtávacích polí a čtení hodnot vybraných zaškrtávacích polí byla vysvětlena v tomto tutoriálu pomocí dvou jednoduchých příkladů. Skupiny zaškrtávacích polí lze definovat tak, aby bylo možné vybrat konkrétní zaškrtávací políčko ze skupiny, která zde není zobrazena.

Hry HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
Mnoho vývojářů a vydavatelů her přichází s HD remasterem starých her, aby prodloužili životnost franšízy, prosím fanoušky, kteří požadují kompatibilit...
Hry Jak používat AutoKey k automatizaci linuxových her
Jak používat AutoKey k automatizaci linuxových her
AutoKey je nástroj pro automatizaci stolních počítačů pro systémy Linux a X11, programovaný v programech Python 3, GTK a Qt. Pomocí jeho funkcí skript...
Hry Jak zobrazit počítadlo FPS v linuxových hrách
Jak zobrazit počítadlo FPS v linuxových hrách
Hraní na Linuxu získalo velký tlak, když společnost Valve v roce 2012 oznámila podporu systému Linux pro klienta Steam a jejich hry. Od té doby se mno...