Comment utiliser pyqt qcombobox

Comment utiliser pyqt qcombobox

UN Boîte combo est utilisé pour sélectionner un élément dans une liste d'éléments, un peu comme le bouton radio. Le QCOMBOBOX La classe de PYQT est utilisée pour créer des listes déroulantes à l'aide du script Python. Il fait apparaître une liste d'éléments pour que l'utilisateur puisse sélectionner. Les éléments du ComboBox peuvent être ajoutés, modifiés et supprimés à l'aide du script. Plusieurs éléments peuvent être sélectionnés comme le bouton de case à cocher dans la liste des éléments du ComboBox, puis il s'appelle Listbox. Ce tutoriel vous montre comment utiliser QCombobox pour créer une liste déroulante dans Python.

Méthodes QCombobox

La classe QCombobox contient de nombreuses méthodes pour effectuer diverses tâches liées à ComboBox. Certaines des méthodes les plus couramment utilisées de cette classe sont décrites ci-dessous:

Nom de méthode But
compter() Utilisé pour compter le nombre total d'éléments dans la liste.
ajouter un item() Utilisé pour ajouter un seul nouvel élément à la liste.
Ajouter des articles() Utilisé pour ajouter plusieurs éléments à la liste.
itemText () Utilisé pour lire le texte d'un élément particulier basé sur un index.
setItemText () Utilisé pour définir le texte d'un élément particulier basé sur un index.
currentText () Utilisé pour lire le texte de l'élément sélectionné.
CurrentIndex () Utilisé pour lire l'index de l'élément sélectionné.
clair() Utilisé pour supprimer tous les éléments de la liste.
Souligné() Utilisé lorsqu'un élément de la liste est mis en surbrillance.
activé () Utilisé lorsqu'un élément est sélectionné par l'utilisateur.
CurrentIndexchanged () Utilisé lorsque l'article de la liste a changé.

Utilisation de combobox

Les sections suivantes fournissent des exemples qui expliquent différentes utilisations du combobox à l'aide du module QCombobox de la bibliothèque PYQT.

Exemple 1: Créez une liste déroulante simple

Cet exemple vous montre comment créer une liste déroulante simple à l'aide de la classe QCombobox. Ici, une liste déroulante de cinq éléments est créée et est attachée à une fonction personnalisée qui imprimera la valeur sélectionnée dans la liste. Une étiquette est utilisée dans la fonction de la liste déroulante pour afficher le texte statique, et une autre étiquette est utilisée sous la liste déroulante pour afficher la valeur sélectionnée.

# Importer les modules nécessaires
importer sys
de pyqt5.QTWidgets Import (Qapplication, Qwidget, QLabel, QVBoxLayout, QCombobox)
# Déclarer la classe pour créer le Combobox
classe comboexample (qwidget):
def __init __ (soi):
super().__init __ ()
# Définissez l'étiquette avant le Combobox
soi.topLabel = QLabel ('Sélectionnez votre langage de programmation préféré:', Self)
# Définissez le ComboBox avec des éléments
combobox = qcombobox (self)
boîte combo.additem ('php')
boîte combo.additem ('python')
boîte combo.additem ('perl')
boîte combo.additem ('bash')
boîte combo.additem ('java')
# Définissez l'étiquette après le Combobox
soi.BottomLabel = QLabel (", self)
soi.masse.ajuster ()
# Définir la boîte de mise en page varticale
v_layout = qvboxlayout ()
v_layout.addWidget (soi.TopLabel)
v_layout.AddWidget (ComboBox)
v_layout.addWidget (soi.Bottombel)
# Appelez la méthode personnalisée si un élément est sélectionné
boîte combo.activé [str].se connecter (soi.onselected)
# Définissez les configurations de la fenêtre
soi.SetContentsmargins (20, 20, 20, 20)
soi.setLayout (v_layout)
soi.Déplacer (800, 300)
soi.SetWindowTitle («Utilisation de ComboBox»)
# Fonction personnalisée pour lire la valeur de l'élément sélectionné
défini (self, txtval):
txtval = "\ nyou a sélectionné:" + txtval
soi.masse.setText (txtval)
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
combobox = comboexample ()
boîte combo.montrer()
appliquer.exec ()

Si l'utilisateur clique sur la liste déroulante après avoir exécuté le script, la liste suivante apparaîtra.

Si l'utilisateur sélectionne la valeur Frapper Depuis la liste déroulante, la valeur de la deuxième étiquette sera changée en 'Vous avez sélectionné: bash.'

Exemple 2: Créez un ComboBox en utilisant la liste

Dans l'exemple précédent, la liste déroulante a été créée avec des données statiques à l'aide de la méthode additem () de la classe QCombobox. Cet exemple vous montre comment ajouter plusieurs éléments dans la liste déroulante en définissant une liste Python. Tout d'abord, nous ajouterons du texte statique au premier élément de la liste déroulante à l'aide de la méthode additem (). Ensuite, nous définirons une liste de cinq éléments dans le script, et nous ajouterons ces éléments à la liste déroulante à l'aide de la méthode additems (). Une fonction personnalisée est attachée à la liste déroulante pour afficher le message de l'étiquette en fonction de la sélection de l'utilisateur.

# Importer les modules nécessaires
importer sys
de pyqt5.QtWidgets Import *
# Déclarez la classe pour créer ComboBox en utilisant des données de liste
classe comboexample (qmainwindow):
def __init __ (soi):
super().__init __ ()
# Définissez le titre de la fenêtre
soi.setWindowTitle ("ComboBox avec les données de liste")
# Définissez la géométrie de la fenêtre
soi.setGeométrie (100, 100, 350, 150)
# Créer Combobox
soi.combobox = qcombobox (self)
# Définissez la géométrie pour le Combobox
soi.boîte combo.SetGeométrie (30, 30, 200, 30)
# Définir les éléments de la liste pour le Combobox
src_engines = ["Google.com "," Yahoo.com "," Demandez.com "," baidu.com "," yandex.com "]
# Activer l'option modifiable du combobox
soi.boîte combo.SetEditable (vrai)
# Définissez le premier élément pour le ComboBox
soi.boîte combo.additem ("Sélectionner le moteur de recherche")
# Ajouter plusieurs éléments dans la liste de combobox à l'aide
soi.boîte combo.additems (src_ngines)
# Définissez l'étiquette au bas du ComboBox pour fournir un message à l'utilisateur
soi.msglabel = qlabel (", self)
# Définissez la géométrie de l'étiquette
soi.msglabel.SetGeométrie (30, 60, 290, 60)
# Appelez la fonction personnalisée lorsqu'un élément est sélectionné
soi.boîte combo.activé [str].se connecter (soi.onClicked)
# Déplacer la position de la fenêtre
soi.Déplacer (800, 400)
# Afficher la fenêtre
soi.montrer()
# Définissez une méthode pour gérer l'événement de clic du combobox
Def onClicked (self, val):
# Vérifier que tout élément est sélectionné par l'utilisateur ou non
Si val == "Sélectionnez le moteur de recherche":
message = "Vous n'avez rien sélectionné."
autre:
message = "Votre moteur de recherche préféré est" + Val
# Afficher le texte du message dans l'étiquette
soi.msglabel.setText (message)
# Afficher le message dans la console
Imprimer (message)
# Créer l'objet APP
app = qapplication (sys.argv)
# Créer un objet de l'objet de classe
combo = comboexample ()
# Exécuter l'application
appliquer.exec ()

Si l'utilisateur clique sur la liste déroulante après l'exécution du script, alors la liste suivante apparaîtra.

Si l'utilisateur sélectionne un élément sauf le premier élément de la liste déroulante, la valeur sélectionnée sera affichée dans l'étiquette en combinant avec l'autre texte.

Si l'utilisateur sélectionne le premier élément de la liste déroulante, alors la valeur, 'Vous n'avez rien sélectionné'sera montré dans l'étiquette.

Conclusion

Cet article vous a montré comment créer et utiliser des listes déroulantes dans Python en utilisant le QCOMBOBOX classe en utilisant des exemples simples pour vous aider à mieux comprendre l'utilisation de cette classe.