Piton

A PyQt jelölőnégyzet használata?

A PyQt jelölőnégyzet használata?

A jelölőnégyzet arra szolgál, hogy a grafikus felhasználói felület segítségével számos lehetőség közül nulla vagy több opciót válasszon. A jelölőnégyzettel ellátott űrlap a használatával hozható létre QCheckBox osztály Python szkriptben vagy a QCheckBox widget Qt Designer forgatókönyv írása nélkül.

Amikor a jelölőnégyzettel ellátott űrlapot a (z) használatával hozza létre QCheckBox osztály, akkor stateChanged.connect () függvény hívja meg a felhasználói bemenet által végrehajtott művelet alkalmazását. Ha a felhasználó bejelölt egy jelölőnégyzetet, akkor a QtCore.Qt.ellenőrzött igaz lesz. Több jelölőnégyzet egy kiválasztással, például a Rádió gomb segítségével hozható létre QbuttonGroup osztály.

Az oktatóanyag bemutatja, hogyan lehet Python szkript megírásával létrehozni egy jelölőnégyzetet tartalmazó űrlapot.

A QCheckBox szükséges módszerei

QCheckBox osztály számos funkcióval rendelkezik, hogy különböző típusú feladatokat hajtson végre a jelölőnégyzettel. Ennek az osztálynak a leggyakrabban alkalmazott módszereit az alábbiakban ismertetjük:

Módszer neve Célja
isChecked () Logikai értéket ad vissza. Amikor a felhasználó rákattint a jelölőnégyzet bejelölésére, a True értéket adja vissza, ellenkező esetben a False értéket adja vissza.
setChecked () A jelölőnégyzet állapotának megváltoztatására szolgál. Az Igaz érték beállítása a jelölőnégyzet bejelöléséhez, a Hamis érték pedig a jelölőnégyzet bejelölésének kikapcsolásához.
szöveg() A jelölőnégyzet címkéjének elolvasására szolgál.
setText () A jelölőnégyzet címkéjének beállítására szolgál.
isTriState () Logikai értéket ad vissza. A háromállapot ellenőrzésére szolgál, hogy megtudja, be van-e jelölve a jelölőnégyzet.
setTriState () A jelölőnégyzet harmadik állapotának engedélyezésére szolgál, amely jelzi a semleges állapotot.

Hozzon létre egy űrlapot a jelölőnégyzettel a QCheckBox osztály használatával:

A jelölőnégyzet használatát ebben a szakaszban különféle példák segítségével mutatjuk be. Egyetlen jelölőnégyzet használata, az első példában látható módon, és több jelölőnégyzet használata a második példában.

1. példa: Egyetlen jelölőnégyzet létrehozása

Az egyetlen jelölőnégyzet létrehozásának módja a QCheckBox osztály és a felhasználó által megadott jelölőnégyzet bemeneti értékének beolvasása látható ebben a példában. A szükséges modulokat a szkript elején importáljuk. A fenti jelölőnégyzetben egy címkét használnak az információk megadásához a felhasználó számára. Ha a felhasználó a jelölőnégyzetre kattint, hogy ellenőrizze, akkor a szkript kinyomtatja:Azta! Szereted a programozást”, Különben a szkript kinyomtatja:Óh ne!, Nem szereted a programozást”.

# Importálja a szükséges modulokat
import sys
a PyQt5-ből importálja a QtCore, QtWidgets programokat
a PyQt5-ből.A QtWidgets importálja a QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Definiálja az űrlap létrehozásának osztályát egyetlen jelölőnégyzettel
osztály SingleCheckbox (QMainWindow):
def __init __ (én):
szuper().__benne__()
# Hozza létre a felhasználó címkeszövegét
lb = QLabel ("Tetszik a programozás?", maga)
lb.setGeometry (20, 20, 200, 20)
lb.mozog (20, 20)
# Hozzon létre egy jelölőnégyzetet a címkével
cb = QCheckBox ('Igen', önálló)
cb.stateChanged.összekapcsolni (én.Check_Answer)
cb.mozog (20, 50)
# Állítsa be a függőleges Qt elrendezést
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb)
# Állítsa be az ablak címét és méretét
maga.setWindowTitle ('Űrlap egyetlen jelölőnégyzettel')
maga.setGeometry (60, 60, 300, 100)
# Jelenítse meg az ablakot a képernyő közepén
győzelem = én.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().központ()
győzelem.moveCenter (pos)
maga.mozogni (nyerni.bal felső())
maga.előadás()
# Definiálja a felhasználó bemenetének ellenőrzéséhez szükséges funkciót
def Check_Answer (én, állapot):
ha állapot == QtCore.Qt.Ellenőrzött:
print ("Wow! Szereted a programozást.")
más:
nyomtatás ("Ó, nem!, Nem szereted a programozást.")
# Hozzon létre alkalmazásobjektumot és hajtsa végre az alkalmazást
app = QtWidgets.QApplication (sys.argv)
form = SingleCheckbox ()
kb.exec ()

A parancsfájl végrehajtása után megjelenik a következő ablak egy jelölőnégyzettel.


A következő kimenetben a felhasználó kétszer bejelölte a jelölőnégyzetet, és egyszer törölte a jelölést.

2. példa: Több jelölőnégyzet létrehozása

A több jelölőnégyzet létrehozásának módja a QCheckbox osztály és a több jelölőnégyzet több értékének beolvasása látható ebben a példában. Két címke és három jelölőnégyzet kerül az ablakhoz. Az első címke a jelölőnégyzetek elejére kerül, hogy információt nyújtson a felhasználó számára, míg a második címke a jelölőnégyzetek végén található, hogy megjelenítse a kijelölt jelölőnégyzet vagy jelölőnégyzetek értékeit.

# Importálja a szükséges modulokat
import sys
a PyQt5-ből.QtWidgetek importálása (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Definiálja az űrlap létrehozásának osztályát több jelölőnégyzettel
class MultipleCheckbox (QWidget):
def __init __ (én):
szuper().__benne__()
# Állítsa be a felhasználó címkeszövegét
lb = QLabel ("Válassza ki a kedvenc étele (ke) t:", saját)
lb.setGeometry (20, 20, 100, 20)
lb.mozog (20, 20)
# Hozzon létre három jelölőnégyzetet
cb1 = QCheckBox („Csokoládétorta”, saját)
cb1.mozog (20, 70)
cb1.stateChanged.összeköt (lambda: én.Kiválasztott_érték (cb1))
cb2 = QCheckBox ('Ice-Cream', saját)
cb2.lépés (20, 90)
cb2.stateChanged.összeköt (lambda: én.Kiválasztott_érték (cb2))
cb3 = QCheckBox ('tészta', önálló)
cb3.lépés (20, 110)
cb3.stateChanged.összeköt (lambda: én.Kiválasztott_érték (cb3))
maga.label = QLabel ('Nincs kiválasztva')
maga.címke.mozog (20, 150)
# Állítsa be a függőleges Qt elrendezést
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb1)
vbox.addWidget (cb2)
vbox.addWidget (cb3)
vbox.addWidget (self.címke)
maga.setLayout (vbox)
maga.setWindowTitle ('Űrlap több jelölőnégyzettel')
maga.setGeometry (60, 60, 350, 200)
maga.lblText = "
# Jelenítse meg az ablakot a képernyő közepén
győzelem = én.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().központ()
győzelem.moveCenter (pos)
maga.mozogni (nyerni.bal felső())
maga.előadás()
# Definiálja a felhasználó bemenetének olvasásához szükséges funkciót
def Selected_Value (én, btn):
ha önmaga.lblText != ":
str = én.lblText
strArray = str.hasított(' ,')
maga.lblText = "
for val in strArray:
ha btn.szöveg() != val:
ha önmaga.lblText == ":
maga.lblText = val
más:
maga.lblText + = ',' + val
ha btn.isChecked () == Igaz:
ha önmaga.lblText == ":
maga.lblText = btn.szöveg()
más:
maga.lblText + = ',' + btn.szöveg()
más:
ha btn.isChecked () == Igaz:
ha önmaga.lblText == ":
maga.lblText = btn.szöveg()
más:
maga.lblText + = ',' + btn.szöveg()
maga.címke.setText ('Kiválasztotta \ n' + önmagát.lblText)
# Hozzon létre alkalmazásobjektumot és hajtsa végre az alkalmazást
app = QApplication (sys.argv)
ex = MultipleCheckbox ()
sys.kilépés (kb.exec_ ()

A szkript végrehajtása után a következő ablak jelenik meg. A második címke alapértelmezett értéke:Nincs kiválasztva semmi”És a címke értéke megváltozik, ha bármelyik jelölőnégyzetet bejelöli vagy nem törli a felhasználó.


A következő kimenetben két jelölőnégyzetet jelöl be a felhasználó, és a második címke értéke "Csokoládé, tészta”.

Következtetés

Egy vagy több jelölőnégyzet definiálásának és a kijelölt jelölőnégyzet (ek) értékeinek olvasásának módját két egyszerű példa segítségével ismertettük ebben az oktatóanyagban. A jelölőnégyzetek csoportjai meghatározhatók, hogy kiválasszanak egy adott jelölőnégyzetet az itt nem látható csoportból.

A GameConqueror Cheat Engine használata Linux alatt
A cikk tartalmaz egy útmutatót a GameConqueror csaló motor Linux alatt történő használatáról. Sok olyan felhasználó, aki Windows-on játszik játékot, g...
A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...
A legjobb Linux-disztribútorok játékhoz 2021-ben
A Linux operációs rendszer hosszú utat tett meg eredeti, egyszerű, szerver alapú kinézetétől. Ez az operációs rendszer rendkívül javult az elmúlt évek...