PyQt - Widget QComboBox

UNE QComboBoxobjet présente une liste déroulante d'éléments à sélectionner. Il faut un espace d'écran minimum sur le formulaire requis pour afficher uniquement l'élément actuellement sélectionné.

Une zone de liste déroulante peut être définie pour être modifiable; il peut également stocker des objets pixmap. Les méthodes suivantes sont couramment utilisées -

Vous trouverez ci-dessous les méthodes les plus couramment utilisées de QComboBox.

N ° Sr. Méthodes et description
1

addItem()

Ajoute une chaîne à la collection

2

addItems()

Ajoute des éléments dans un objet de liste

3

Clear()

Supprime tous les éléments de la collection

4

count()

Récupère le nombre d'éléments de la collection

5

currentText()

Récupère le texte de l'élément actuellement sélectionné

6

itemText()

Affiche le texte appartenant à un index spécifique

sept

currentIndex()

Renvoie l'index de l'élément sélectionné

8

setItemText()

Modifie le texte de l'index spécifié

Signaux QComboBox

N ° Sr. Méthodes et description
1

activated()

Lorsque l'utilisateur choisit un élément

2

currentIndexChanged()

Chaque fois que l'index actuel est modifié par l'utilisateur ou par programme

3

highlighted()

Lorsqu'un élément de la liste est mis en surbrillance

Exemple

Voyons comment certaines fonctionnalités du widget QComboBox sont implémentées dans l'exemple suivant.

Les éléments sont ajoutés dans la collection individuellement par la méthode addItem () ou les éléments d'un objet List par la méthode addItems ().

self.cb.addItem("C++")
self.cb.addItems(["Java", "C#", "Python"])

L'objet QComboBox émet le signal currentIndexChanged (). Il est connecté à la méthode selectionchange ().

Les éléments d'une zone de liste déroulante sont répertoriés à l'aide de la méthode itemText () pour chaque élément. L'étiquette appartenant à l'élément actuellement choisi est accessible par la méthode currentText ().

def selectionchange(self,i):
   print "Items in the list are :"
	
   for count in range(self.cb.count()):
      print self.cb.itemText(count)
   print "Current index",i,"selection changed ",self.cb.currentText()

Le code entier est le suivant -

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class combodemo(QWidget):
   def __init__(self, parent = None):
      super(combodemo, self).__init__(parent)
      
      layout = QHBoxLayout()
      self.cb = QComboBox()
      self.cb.addItem("C")
      self.cb.addItem("C++")
      self.cb.addItems(["Java", "C#", "Python"])
      self.cb.currentIndexChanged.connect(self.selectionchange)
		
      layout.addWidget(self.cb)
      self.setLayout(layout)
      self.setWindowTitle("combo box demo")

   def selectionchange(self,i):
      print "Items in the list are :"
		
      for count in range(self.cb.count()):
         print self.cb.itemText(count)
      print "Current index",i,"selection changed ",self.cb.currentText()
		
def main():
   app = QApplication(sys.argv)
   ex = combodemo()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

Le code ci-dessus produit la sortie suivante -

Les éléments de la liste sont -

C
C++
Java
C#
Python
Current selection index 4 selection changed Python