1 - A propos du widget QCombobox PyQt5
Le widget QComboBox PyQt est un widget simple pour présenter une liste d'options aux utilisateurs. Lorsqu'il est sélectionné, un QComboBox PyQt affiche une liste de valeurs possibles parmi lesquelles vous pouvez sélectionner. Un QComboBox peut également être rendu éditable, afin que vos utilisateurs puissent saisir leurs propres valeurs dans la liste des valeurs possibles.
2 - Créer une liste QCombobox à l'aide de la classe QCombobox PyQt5
Pour créer une liste QCombobox, rien de plus simple, il suffit de :
- créer la liste des items ['item1' , item2 , ...]
- faire une instanciation sur la classe QCombobox
- ajouter la liste des items à l'objet QCombobox à l'aide de la méthodes addItems()
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# coding: utf-8 from PyQt5.QtWidgets import QApplication, QWidget , QComboBox import sys app = QApplication(sys.argv) root = QWidget() root.setWindowTitle("Exemple de liste QCombobox") root.setGeometry(100 , 100 , 500 , 300) # création de la liste QCombobox qcombo = QComboBox(root) qcombo.setGeometry(100 , 10 , 150 , 30) # création de la liste des items L = ["python" , "Java" , "PHP"] # ajout des items à la liste QCombobox qcombo.addItems(["python" , "Java" , "PHP" , "MySql"]) root.show() sys.exit(app.exec_()) |
Ce qui affiche à l'exécution:
3 - Associer une action à la liste QCombobox PyQt5
Pour associer une action à une liste QCombobox, on utilise la méthode activated() suivi de la méthode connect(nom_de_l_action).
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# coding: utf-8 from PyQt5.QtWidgets import QApplication, QWidget , QComboBox import sys def actionSelect(): select = qcombo.currentText() print("Vous avez sélectionné : " + select) app = QApplication(sys.argv) root = QWidget() root.setWindowTitle("Exemple de liste QCombobox") root.setGeometry(100 , 100 , 500 , 300) # création de la liste QCombobox qcombo = QComboBox(root) qcombo.setGeometry(100 , 10 , 150 , 30) qcombo.activated.connect(actionSelect) # création de la liste des items L = ["python" , "Java" , "PHP"] # ajout des items à la liste QCombobox qcombo.addItems(["python" , "Java" , "PHP" , "MySql"]) root.show() sys.exit(app.exec_()) |
4 - QCombobox selon l'approche objet
En suivant les mêmes procédures de création d'une liste QCombobox, on peut en coder une facilement au sein d'une classe Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from PyQt5.QtWidgets import QApplication, QWidget , QLabel , QComboBox import sys class MyCombo(QWidget): def __init__(self , win): super().__init__() self.win = win def actionSelect(self): select = self.combobox.currentText() print("vous avez sélectionné : " + select) def build(self): self.win.setWindowTitle("QCombobox Example !") self.win.setGeometry(100 , 100 , 500 , 300) self.combobox = QComboBox(self.win) self.combobox.setGeometry(100 , 10 , 150 , 30) L = ["python" , "Java" , "PHP" , "MySql"] self.combobox.addItems(L) self.combobox.activated.connect(self.actionSelect) if __name__ == '__main__': app = QApplication(sys.argv) root = QWidget() # création d'un objet myCombo mycombo = MyCombo(root) mycombo.build() root.show() sys.exit(app.exec_()) |
Younes Derfoufi
CRMEF OUJDA