Python

Comment utiliser la case à cocher PyQt?

Comment utiliser la case à cocher PyQt?

La case à cocher est utilisée pour sélectionner zéro ou plusieurs options parmi de nombreuses options à l'aide de l'interface utilisateur graphique. Un formulaire avec une case à cocher peut être créé en utilisant QCheckBox classe dans un script Python ou en utilisant le QCheckBox widget de Concepteur Qt sans écrire de script.

Lorsqu'un formulaire avec une case à cocher est créé en utilisant QCheckBox classe, alors étatChangé.relier() la fonction est appelée pour appliquer l'action effectuée par l'entrée de l'utilisateur. Si l'utilisateur a coché une case à cocher, la valeur de QtCore.Qt.vérifié sera vrai. Plusieurs cases à cocher avec une seule sélection comme le bouton radio peuvent être créées en utilisant Groupe de boutons Q classer.

Comment un formulaire avec une case à cocher peut être créé en écrivant un script Python est montré dans ce tutoriel.

Méthodes nécessaires de QCheckBox

QCheckBox la classe a de nombreuses fonctions pour effectuer différents types de tâches avec la case à cocher. Certaines des méthodes les plus couramment utilisées de cette classe sont décrites ci-dessous :

Nom de la méthode Objectif
est vérifié() Il renvoie une valeur booléenne. Lorsque l'utilisateur clique pour cocher la case, il renvoie True, sinon, il renvoie False.
setChecked() Il est utilisé pour changer l'état de la case à cocher. La valeur vraie est définie pour que la case à cocher soit cochée, et la valeur fausse est définie pour que la case à cocher ne soit pas cochée.
texte() Il sert à lire le libellé de la case à cocher.
Définir le texte() Il est utilisé pour définir le libellé de la case à cocher.
isTriState() Il renvoie une valeur booléenne. Il est utilisé pour vérifier le tri-état pour savoir si la case à cocher est activée ou non.
setTriState() Il est utilisé pour activer le troisième état de la case à cocher qui indique l'état neutre.

Créez un formulaire avec Checkbox à l'aide de la classe QCheckBox :

Les utilisations de la case à cocher sont présentées dans cette section à l'aide de différents types d'exemples. L'utilisation d'une seule case à cocher, comme illustré dans le premier exemple, et l'utilisation de plusieurs cases à cocher sont illustrées dans le deuxième exemple.

Exemple 1 : création d'une case à cocher unique

La façon de créer une case à cocher unique en utilisant QCheckBox classe et la lecture de la valeur d'entrée de la case à cocher fournie par l'utilisateur sont indiquées dans cet exemple. Les modules nécessaires sont importés au début du script. Une étiquette est utilisée dans la case à cocher ci-dessus pour fournir les informations à l'utilisateur. Si l'utilisateur clique sur la case à cocher pour vérifier, le script imprimera, "Wow! Vous aimez programmer”, sinon le script imprimera, “Oh non!, Vous n'aimez pas la programmation".

# Importez les modules nécessaires
importer le système
de PyQt5 importer QtCore, QtWidgets
de PyQt5.QtWidgets importe QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Définir la classe pour créer le formulaire avec une seule case à cocher
classe SingleCheckbox(QMainWindow):
def __init__(self):
super().__init__()
# Créer le texte de l'étiquette pour l'utilisateur
lb = QLabel("Aimez-vous programmer?", soi)
kg.setGeometry (20, 20, 200, 20)
kg.déplacer (20, 20)
# Créez une case à cocher avec le libellé
cb = QCheckBox('Oui', soi)
cb.étatChangé.se connecter (se.Vérifier la réponse)
cb.déplacer (20, 50)
# Définir la disposition verticale Qt
vbox = QVBoxLayout()
vbox.ajouterWidget(lb)
vbox.ajouterWidget(cb)
# Définir le titre et la taille de la fenêtre
soi.setWindowTitle('Formulaire avec une seule case à cocher')
soi.setGeometry (60, 60, 300, 100)
# Afficher la fenêtre au centre de l'écran
gagner = soi.frameGeometry()
pos = QDesktopWidget().disponibleGéométrie().centre()
gagner.moveCenter(pos)
soi.déplacer (gagner.en haut à gauche())
soi.spectacle()
# Définir une fonction pour vérifier l'entrée de l'utilisateur
def Check_Answer(self, state):
si état == QtCore.Qt.Vérifié:
print("Ouah! Vous aimez la programmation.")
autre:
print("Oh non!, Vous n'aimez pas la programmation.")
# Créer un objet d'application et exécuter l'application
application = QtWidgets.QApplication(sys.argv)
formulaire = SingleCheckbox()
application.exec()

La fenêtre suivante avec une case à cocher apparaîtra après l'exécution du script.


Dans la sortie suivante, l'utilisateur a coché la case deux fois et décoché la case une fois.

Exemple 2 : Création de plusieurs cases à cocher

La méthode de création de plusieurs cases à cocher en utilisant Qcase à cocher classe et la lecture de plusieurs valeurs des multiples cases à cocher sont montrées dans cet exemple. Deux étiquettes et trois cases à cocher sont ajoutées à la fenêtre. La première étiquette est ajoutée au début des cases à cocher pour fournir des informations à l'utilisateur, tandis que la deuxième étiquette est ajoutée à la fin des cases à cocher pour afficher les valeurs de la ou des cases à cocher sélectionnées.

# Importez les modules nécessaires
importer le système
de PyQt5.Importation de QtWidgets (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Définir la classe pour créer le formulaire avec plusieurs cases à cocher
classe MultipleCheckbox(QWidget):
def __init__(self):
super().__init__()
# Définir le texte de l'étiquette pour l'utilisateur
lb = QLabel("Sélectionnez vos aliments préférés :", soi-même)
kg.setGeometry (20, 20, 100, 20)
kg.déplacer (20, 20)
# Créez trois cases à cocher
cb1 = QCheckBox('Gâteau au chocolat', soi)
cb1.déplacer (20, 70)
cb1.étatChangé.connecter(lambda: soi.Selected_Value(cb1))
cb2 = QCheckBox('Glace', soi)
cb2.déplacer (20, 90)
cb2.étatChangé.connecter(lambda: soi.Valeur_sélectionnée(cb2))
cb3 = QCheckBox('Pâtes', soi)
cb3.déplacer (20, 110)
cb3.étatChangé.connecter(lambda: soi.Valeur_sélectionnée(cb3))
soi.label = QLabel('Rien de sélectionné')
soi.étiqueter.déplacer (20, 150)
# Définir la disposition verticale Qt
vbox = QVBoxLayout()
vbox.ajouterWidget(lb)
vbox.ajouterWidget(cb1)
vbox.ajouterWidget(cb2)
vbox.ajouterWidget(cb3)
vbox.addWidget(self.étiqueter)
soi.setLayout(vbox)
soi.setWindowTitle('Formulaire avec plusieurs cases à cocher')
soi.setGeometry (60, 60, 350, 200)
soi.lblTexte = "
# Afficher la fenêtre au centre de l'écran
gagner = soi.frameGeometry()
pos = QDesktopWidget().disponibleGéométrie().centre()
gagner.moveCenter(pos)
soi.déplacer (gagner.en haut à gauche())
soi.spectacle()
# Définir la fonction pour lire l'entrée de l'utilisateur
def Selected_Value(self, btn):
si soi.lblTexte != " :
str = soi.lblTexte
strArray = str.diviser(' ,')
soi.lblTexte = "
pour val dans strArray :
si btn.texte() != val :
si soi.lblTexte == " :
soi.lblTexte = val
autre:
soi.lblText += ' ,' + val
si btn.isChecked() == True :
si soi.lblTexte == " :
soi.lblTexte = btn.texte()
autre:
soi.lblText += ' ,' + btn.texte()
autre:
si btn.isChecked() == True :
si soi.lblTexte == " :
soi.lblTexte = btn.texte()
autre:
soi.lblText += ' ,' + btn.texte()
soi.étiqueter.setText('Vous avez sélectionné \n' + self.lblTexte)
# Créer un objet d'application et exécuter l'application
app = QApplication(sys.argv)
ex = MultipleCheckbox()
système.sortie (application.exec_())

La fenêtre suivante apparaîtra après l'exécution du script. La valeur par défaut de la deuxième étiquette est "Rien n'est sélectionné" et la valeur de l'étiquette sera modifiée lorsqu'une case est cochée ou décochée par l'utilisateur.


Dans la sortie suivante, deux cases à cocher sont cochées par l'utilisateur et la valeur de la deuxième étiquette est modifiée en "Chocolat, Pâtes".

Conclusion

La façon de définir une ou plusieurs cases à cocher et de lire les valeurs de la ou des cases à cocher sélectionnées a été expliquée dans ce tutoriel à l'aide de deux exemples simples. Les groupes de cases à cocher peuvent être définis pour sélectionner une case à cocher particulière dans un groupe qui n'est pas affiché ici.

Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...
Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...
Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...