Python

Hoe PyQt-selectievakje te gebruiken?

Hoe PyQt-selectievakje te gebruiken?

Het selectievakje wordt gebruikt om nul of meer opties te selecteren uit vele opties met behulp van de grafische gebruikersinterface. Een formulier met een selectievakje kan worden gemaakt met behulp van QCheckBox klasse in een Python-script of met behulp van de QCheckBox widget van Qt-ontwerper zonder een script te schrijven.

Wanneer een formulier met een selectievakje is gemaakt met QCheckBox klasse, dan? staatGewijzigd.aansluiten() functie wordt aangeroepen om de actie toe te passen die is uitgevoerd door de invoer van de gebruiker. Als de gebruiker een selectievakje heeft aangevinkt, dan is de waarde van QtCore.Qt.gecontroleerd zal waar zijn. Meerdere selectievakjes met een enkele selectie, zoals Radio Button, kunnen worden gemaakt met QbuttonGroep klasse.

Hoe een formulier met een selectievakje kan worden gemaakt door een Python-script te schrijven, wordt in deze zelfstudie getoond.

Noodzakelijke methoden van QCheckBox

QCheckBox class heeft veel functies om verschillende soorten taken uit te voeren met het selectievakje. Enkele meest gebruikte methoden van deze klasse worden hieronder beschreven:

Methode Naam: Doel
is nagekeken() Het retourneert een booleaanse waarde. Wanneer de gebruiker klikt om het selectievakje aan te vinken, wordt True geretourneerd, anders wordt False geretourneerd.
setChecked() Het wordt gebruikt om de status van het selectievakje te wijzigen. Waarde is ingesteld om het selectievakje aan te vinken en False is ingesteld om het selectievakje niet aan te vinken.
tekst() Het wordt gebruikt om het label van het selectievakje te lezen.
setText() Het wordt gebruikt om het label van het selectievakje in te stellen.
isTriState() Het retourneert een booleaanse waarde. Het wordt gebruikt om de tri-state te controleren om te weten of het selectievakje is ingeschakeld of niet.
setTriState() Het wordt gebruikt om de derde status van het selectievakje in te schakelen dat de neutrale status aangeeft.

Maak een formulier met Checkbox met behulp van QCheckBox Class:

Het gebruik van het selectievakje wordt in deze sectie getoond met behulp van verschillende soorten voorbeelden. Het gebruik van een enkele checkbox, zoals getoond in het eerste voorbeeld, en het gebruik van meerdere checkboxen worden getoond in het tweede voorbeeld.

Voorbeeld 1: Een enkel selectievakje maken

De manier om een ​​enkel selectievakje te maken met QCheckBox class en het lezen van de invoerwaarde van het selectievakje dat door de gebruiker is verstrekt, worden in dit voorbeeld getoond. De benodigde modules worden aan het begin van het script geïmporteerd. Een label wordt gebruikt in het bovenstaande selectievakje om de informatie voor de gebruiker te verstrekken. Als de gebruiker op het selectievakje klikt om het aan te vinken, wordt het script afgedrukt, "Wauw! Je houdt van programmeren”, anders wordt het script afgedrukt, “Oh nee!, Je houdt niet van programmeren”.

# Importeer benodigde modules
import systeem
uit PyQt5 importeer QtCore, QtWidgets
van PyQt5.QtWidgets importeert QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Definieer klasse voor het maken van het formulier met een enkel selectievakje
klasse SingleCheckbox(QMainWindow):
def __init__(zelf):
super().__in het__()
# Maak de labeltekst voor de gebruiker
lb = QLabel("Houd je van programmeren?", zelf)
pond.setGeometrie(20, 20, 200, 20)
pond.verplaatsen(20, 20)
# Maak een selectievakje met het label
cb = QCheckBox('Ja', zelf)
cb.staatGewijzigd.verbinden (zelf).Antwoord nakijken)
cb.verplaatsen(20, 50)
# Stel de verticale Qt-lay-out in
vbox = QVBoxLayout()
vbox.addWidget(lb)
vbox.addWidget(cb)
# Stel de titel en grootte van het venster in
zelf.setWindowTitle('Formulier met één selectievakje')
zelf.setGeometrie(60, 60, 300, 100)
# Geef het venster in het midden van het scherm weer
winnen = zelf.frameGeometrie()
pos = QDesktopWidget().beschikbaar Geometrie().centrum()
winnen.moveCenter(pos)
zelf.bewegen (winnen).linksboven())
zelf.tonen()
# Definieer functie om de invoer van de gebruiker te controleren
def Check_Answer (zelf, staat):
if state == QtCore.Qt.Gecontroleerd:
print("Wauw! Je houdt van programmeren.")
anders:
print("Oh nee!, Je houdt niet van programmeren.")
# Maak een app-object en voer de app uit
app = QtWidgets.QToepassing(sys.argv)
formulier = SingleCheckbox()
app.exec()

Het volgende venster met een selectievakje verschijnt na het uitvoeren van het script.


In de volgende uitvoer heeft de gebruiker het selectievakje twee keer aangevinkt en het selectievakje één keer uitgeschakeld.

Voorbeeld 2: Meerdere selectievakjes maken

De methode om meerdere selectievakjes te maken met behulp van QCheckbox klasse en het lezen van meerdere waarden van de meerdere selectievakjes worden in dit voorbeeld getoond. Er zijn twee labels en drie selectievakjes aan het venster toegevoegd. Het eerste label wordt aan het begin van de selectievakjes toegevoegd om de gebruiker informatie te geven, terwijl het tweede label aan het einde van de selectievakjes wordt toegevoegd om de waarden van het geselecteerde selectievakje of selectievakjes weer te geven.

# Importeer benodigde modules
import systeem
van PyQt5.QtWidgets importeren (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Definieer klasse voor het maken van het formulier met meerdere selectievakjes
klasse MultipleCheckbox(QWidget):
def __init__(zelf):
super().__in het__()
# Stel de labeltekst in voor de gebruiker
lb = QLabel("Selecteer uw favoriete eten(en):", zelf)
pond.setGeometrie(20, 20, 100, 20)
pond.verplaatsen(20, 20)
# Maak drie selectievakjes aan
cb1 = QCheckBox('Chocoladetaart', zelf)
cb1.verplaatsen(20, 70)
cb1.staatGewijzigd.verbinden (lambda: zelf).Selected_Value(cb1))
cb2 = QCheckBox('IJs', zelf)
cb2.verplaatsen(20, 90)
cb2.staatGewijzigd.verbinden (lambda: zelf).Selected_Value(cb2))
cb3 = QCheckBox('Pasta', zelf)
cb3.verplaatsen(20, 110)
cb3.staatGewijzigd.verbinden (lambda: zelf).Selected_Value(cb3))
zelf.label = QLabel('Niets geselecteerd')
zelf.etiket.verplaatsen(20, 150)
# Stel de verticale Qt-lay-out in
vbox = QVBoxLayout()
vbox.addWidget(lb)
vbox.addWidget(cb1)
vbox.addWidget(cb2)
vbox.addWidget(cb3)
vbox.addWidget(zelf).etiket)
zelf.setlay-out (vbox)
zelf.setWindowTitle('Formulier met meerdere selectievakjes')
zelf.setGeometrie(60, 60, 350, 200)
zelf.lblText = "
# Geef het venster in het midden van het scherm weer
winnen = zelf.frameGeometrie()
pos = QDesktopWidget().beschikbaar Geometrie().centrum()
winnen.moveCenter(pos)
zelf.bewegen (winnen).linksboven())
zelf.tonen()
# Definieer functie om de invoer van de gebruiker te lezen
def Selected_Value(self, btn):
als zelf.lblText != ":
str = zelf.lblText
strArray = str.splitsen(' ,')
zelf.lblText = "
voor val in strArray:
als btn.tekst() != waarde:
als zelf.lblText == ":
zelf.lblText = val
anders:
zelf.lblText += ' ,' + val
als btn.isChecked() == Waar:
als zelf.lblText == ":
zelf.lblText = btn.tekst()
anders:
zelf.lblText += ' ,' + btn.tekst()
anders:
als btn.isChecked() == Waar:
als zelf.lblText == ":
zelf.lblText = btn.tekst()
anders:
zelf.lblText += ' ,' + btn.tekst()
zelf.etiket.setText('Je hebt \n' + zelf geselecteerd.lblText)
# Maak een app-object en voer de app uit
app = QApplicatie(sys.argv)
ex = Meerdere Checkbox()
sys.afsluiten (app.exec_())

Het volgende venster zal verschijnen na het uitvoeren van het script:. De standaardwaarde van het tweede label is “Niets is geselecteerd" en de waarde van het label wordt gewijzigd wanneer een selectievakje door de gebruiker is aangevinkt of niet is aangevinkt.


In de volgende uitvoer worden twee selectievakjes door de gebruiker aangevinkt en wordt de waarde van het tweede label gewijzigd in "Chocolade, Pasta”.

Conclusie

De manier om een ​​of meerdere checkboxen te definiëren en de waarden van de geselecteerde checkbox(en) te lezen is in deze tutorial uitgelegd aan de hand van twee eenvoudige voorbeelden. De groepen selectievakjes kunnen worden gedefinieerd om een ​​bepaald selectievakje te selecteren uit een groep die hier niet wordt weergegeven.

Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...
Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...