Pitone

Come utilizzare la casella di controllo PyQt?

Come utilizzare la casella di controllo PyQt?

La casella di controllo viene utilizzata per selezionare zero o più opzioni da molte opzioni utilizzando l'interfaccia utente grafica. È possibile creare un modulo con una casella di controllo utilizzando QCheckBox classe in uno script Python o usando il QCheckBox widget di Qt Designer senza scrivere alcun copione.

Quando viene creato un modulo con una casella di controllo utilizzando QCheckBox classe, allora statoCambiato.Collegare() la funzione viene chiamata per applicare l'azione eseguita dall'input dell'utente. Se l'utente ha selezionato un'opzione della casella di controllo, il valore di QtCore.Qt.controllato sarà vero. È possibile creare più caselle di controllo con una singola selezione come il pulsante di opzione utilizzando QbuttonGroup classe.

In questo tutorial viene mostrato come creare un modulo con una casella di controllo scrivendo uno script Python.

Metodi necessari di QCheckBox

QCheckBox la classe ha molte funzioni per eseguire diversi tipi di attività con la casella di controllo. Alcuni metodi più comunemente usati di questa classe sono descritti di seguito:

Nome del metodo Scopo
isChecked() Restituisce un valore booleano. Quando l'utente fa clic per selezionare la casella di controllo, restituisce True, altrimenti restituisce False.
setChecked() Viene utilizzato per modificare lo stato della casella di controllo. Il valore vero è impostato per rendere selezionata la casella di controllo e il valore falso è impostato per deselezionare la casella di controllo.
testo() Viene utilizzato per leggere l'etichetta della casella di controllo.
setText() Viene utilizzato per impostare l'etichetta della casella di controllo.
isTriState() Restituisce un valore booleano. Viene utilizzato per controllare il tri-stato per sapere se la casella di controllo è abilitata o meno.
setTriStato() Serve per abilitare il terzo stato della checkbox che indica lo stato neutro.

Crea un modulo con casella di controllo utilizzando la classe QCheckBox:

Gli usi della casella di controllo sono mostrati in questa sezione usando diversi tipi di esempi. L'uso di una singola casella di controllo, come mostrato nel primo esempio, e l'uso di più caselle di controllo sono mostrati nel secondo esempio.

Esempio 1: creazione di una casella di controllo singola

Il modo di creare una singola casella di controllo utilizzando QCheckBox classe e la lettura del valore di input della casella di controllo fornita dall'utente sono mostrati in questo esempio. I moduli necessari vengono importati all'inizio dello script. Viene utilizzata un'etichetta nella casella di controllo sopra per fornire le informazioni per l'utente. Se l'utente fa clic sulla casella di controllo per selezionare, lo script stamperà "Wow! Ti piace programmare”, altrimenti lo script stamperà, “oh no!, Non ti piace programmare".

# Importa i moduli necessari
sistema di importazione
da PyQt5 importa QtCore, QtWidgets
da PyQt5.Importazione di QtWidget QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Definisci la classe per la creazione del modulo con una singola casella di controllo
classe SingleCheckbox (QMainWindow):
def __init__(self):
super().__dentro__()
# Crea il testo dell'etichetta per l'utente
lb = QLabel("Ti piace programmare??", se stesso)
libbre.impostaGeometria(20, 20, 200, 20)
libbre.spostare(20, 20)
# Crea una casella di controllo con l'etichetta
cb = QCheckBox('Sì', self)
cb.statoCambiato.connettersi (auto).Controlla la risposta)
cb.spostare (20, 50)
# Imposta il layout Qt verticale
vbox = QVBoxLayout()
vbox.addWidget(lb)
vbox.addWidget(cb)
# Imposta il titolo e le dimensioni della finestra
se stesso.setWindowTitle('Modulo con casella di controllo singola')
se stesso.impostaGeometria(60, 60, 300, 100)
# Visualizza la finestra al centro dello schermo
vincere = me stesso.frameGeometry()
pos = QDesktopWidget().disponibileGeometria().centro()
vincere.moveCenter(pos)
se stesso.muovere (vincere).a sinistra in alto())
se stesso.mostrare()
# Definisci la funzione per controllare l'input dell'utente
def Check_Answer(self, stato):
se stato == QtCore.Qt.Controllato:
print("Wow! Ti piace programmare.")
altro:
print("Oh no!, Non ti piace programmare.")
# Crea un oggetto app ed esegui l'app
app = QtWidgets.QApplication(sys.argomento)
form = SingleCheckbox()
app.exec()

La seguente finestra con una casella di controllo apparirà dopo aver eseguito lo script.


Nel seguente output, l'utente ha selezionato la casella di controllo due volte e ha deselezionato la casella di controllo una volta.

Esempio 2: creazione di più caselle di controllo

Il metodo per creare più caselle di controllo utilizzando QCheckbox classe e la lettura di più valori delle caselle di controllo multiple sono mostrati in questo esempio. Alla finestra vengono aggiunte due etichette e tre caselle di controllo. La prima etichetta viene aggiunta all'inizio delle caselle di controllo per fornire informazioni all'utente, mentre la seconda etichetta viene aggiunta alla fine delle caselle di controllo per visualizzare i valori della casella o delle caselle di controllo selezionate.

# Importa i moduli necessari
sistema di importazione
da PyQt5.Importazione di QtWidget (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Definisci la classe per creare il modulo con più caselle di controllo
classe MultipleCheckbox (QWidget):
def __init__(self):
super().__dentro__()
# Imposta il testo dell'etichetta per l'utente
lb = QLabel("Seleziona i tuoi cibi preferiti:", self)
libbre.impostaGeometria(20, 20, 100, 20)
libbre.spostare(20, 20)
# Crea tre caselle di controllo
cb1 = QCheckBox('Torta al cioccolato', self)
cb1.spostare (20, 70)
cb1.statoCambiato.connect(lambda: self.Selected_Value(cb1))
cb2 = QCheckBox('Gelato', self)
cb2.spostare (20, 90)
cb2.statoCambiato.connect(lambda: self.Selected_Value(cb2))
cb3 = QCheckBox('Pasta', self)
cb3.spostare(20, 110)
cb3.statoCambiato.connect(lambda: self.Selected_Value(cb3))
se stesso.label = QLabel('Niente selezionato')
se stesso.etichetta.spostare(20, 150)
# Imposta il layout Qt verticale
vbox = QVBoxLayout()
vbox.addWidget(lb)
vbox.addWidget(cb1)
vbox.addWidget(cb2)
vbox.addWidget(cb3)
vbox.addWidget(self.etichetta)
se stesso.setLayout(vbox)
se stesso.setWindowTitle('Modulo con più caselle di controllo')
se stesso.setGeometry(60, 60, 350, 200)
se stesso.lblText = "
# Visualizza la finestra al centro dello schermo
vincere = me stesso.frameGeometry()
pos = QDesktopWidget().disponibileGeometria().centro()
vincere.moveCenter(pos)
se stesso.muovere (vincere).a sinistra in alto())
se stesso.mostrare()
# Definisci la funzione per leggere l'input dell'utente
def Selected_Value(self, btn):
se stesso.lblText != ":
str = sé.lblText
strArray = str.Diviso(' ,')
se stesso.lblText = "
per val in strArray:
se btn.testo() != valore:
se stesso.lblText == ":
se stesso.lblText = val
altro:
se stesso.lblText += ' ,' + val
se btn.isChecked() == Vero:
se stesso.lblText == ":
se stesso.lblText = btn.testo()
altro:
se stesso.lblText += ' ,' + btn.testo()
altro:
se btn.isChecked() == Vero:
se stesso.lblText == ":
se stesso.lblText = btn.testo()
altro:
se stesso.lblText += ' ,' + btn.testo()
se stesso.etichetta.setText('Hai selezionato \n' + self.lblTesto)
# Crea un oggetto app ed esegui l'app
app = QApplication(sys.argomento)
ex = Casella di controllo multipla()
sistema.uscita (app.exec_())

La seguente finestra apparirà dopo aver eseguito lo script. Il valore predefinito della seconda etichetta è "Niente è selezionato” e il valore dell'etichetta verrà modificato quando una casella di controllo viene selezionata o deselezionata dall'utente.


Nel seguente output, l'utente seleziona due caselle di controllo e il valore della seconda etichetta viene modificato in "Cioccolato, Pasta".

Conclusione

Il modo di definire una o più caselle di controllo e leggere i valori delle caselle di controllo selezionate è stato spiegato in questo tutorial utilizzando due semplici esempi. I gruppi di caselle di controllo possono essere definiti per selezionare una particolare casella di controllo da un gruppo che non è mostrato qui.

Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...
Come installare e giocare a Doom su Linux
Introduzione a Doom La serie Doom è nata negli anni '90 dopo l'uscita dell'originale Doom. È stato un successo immediato e da quel momento in poi la s...
Vulkan per utenti Linux
Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al...