Le widget QComboBox PyQt5 Python

1. Description du widget QComboBox PyQt5

  1. QComboBox est l'un des widgets les plus polyvalents de PyQt5: pour créer des menus déroulants interactifs. Il offre aux développeurs la possibilité de créer des interfaces utilisateur riches et intuitives, en permettant aux utilisateurs de sélectionner une option parmi une liste d'éléments prédéfinis. Voici une description détaillée de QComboBox :
  2. Le widget QComboBox est un champ de liste déroulante: qui peut contenir une liste d'éléments. Chaque élément peut être représenté par du texte simple ou par des objets plus complexes, comme des icônes ou des images. La liste d'éléments peut être définie statiquement dans le code ou générée dynamiquement à partir d'une source de données.
  3. Conclusion - QComboBox est un widget flexible et puissant: qui facilite la sélection d'éléments parmi une liste. Il est largement utilisé dans les applications de bureau, les interfaces graphiques et les applications interactives pour fournir aux utilisateurs une manière conviviale de choisir des options et d'interagir avec l'application de manière intuitive.

2. Caractéristiques principales de QComboBox

  1. Sélection d'élément unique : QComboBox permet aux utilisateurs de sélectionner un seul élément parmi la liste. Lorsque l'utilisateur ouvre le menu déroulant, il peut voir la liste complète des éléments et en choisir un.
  2. Gestion des signaux et des slots : QComboBox émet des signaux lorsqu'un élément est sélectionné ou lorsque la liste déroulante est ouverte ou fermée. Cela permet de réagir aux changements de sélection et de mettre à jour l'interface utilisateur en conséquence.
  3. Personnalisation : Les éléments de la liste peuvent être personnalisés en utilisant du texte enrichi, des icônes ou des images pour rendre la liste plus expressive et attrayante.
  4. Gestion de la liste d'éléments : Il est possible d'ajouter et de supprimer dynamiquement des éléments dans la liste. Vous pouvez également trier les éléments selon un ordre spécifique.
  5. Modèles de données : QComboBox prend en charge l'utilisation de modèles de données, tels que QStandardItemModel, pour représenter des listes complexes avec des structures hiérarchiques.
  6. Comportement adaptatif : En fonction de la taille de la liste déroulante et de l'espace disponible, QComboBox peut ajuster automatiquement son apparence pour afficher les éléments d'une manière adaptée à l'interface utilisateur.
  7. Autocomplétion : QComboBox offre la possibilité d'activer l'autocomplétion, ce qui facilite la saisie d'un élément en filtrant automatiquement les options de la liste à mesure que l'utilisateur tape du texte.
  8. Menus personnalisés : Il est possible de créer des menus personnalisés pour les éléments de la liste, offrant ainsi des fonctionnalités supplémentaires ou des actions spécifiques à chaque élément.




3. Syntaxe & usage du widget QComboBox

La syntaxe du widget QComboBox est relativement simple, mais elle offre de nombreuses fonctionnalités puissantes. Voici la syntaxe générale et les principaux aspects de son utilisation :

Syntaxe de base

Afin de pouvoir créer un widget QComboBox, il faut:

  1. Importer la classe QComboBox
  2. Faire une instanciation la classe QComboBox
  3. Ajouter les élément à l'aide de la méthode addItem

Exemple

 

Objet QComboBox PytQt5 Python

Remarque

Les éléments de l'objet ComboBox: Élément 1, Élément 2, Élément 3 peuvent être ajoutés simultanément en une seule fois à l'aide d'une liste en utilisant la méthode addItems() à la place de addItem().

Exemple

Exemple (QComboBox selon l'approche objet)

4. Principaux aspects d'usage d'un objet QComboBox

  1. Création de l'objet QComboBox : Pour utiliser QComboBox, il faut d'abord créer une instance de ce widget. Vous pouvez le faire en spécifiant le widget parent (la fenêtre principale) lors de la création.
  2. Ajout d'éléments : Vous pouvez ajouter des éléments à la liste déroulante en utilisant la méthode addItem() sur l'objet QComboBox. Vous pouvez également ajouter des éléments avec des icônes ou des images en utilisant la méthode addItem() avec un objet QIcon.
  3. Accès aux éléments sélectionnés : Pour accéder à l'élément sélectionné dans QComboBox, vous pouvez utiliser la méthode currentText() pour obtenir le texte de l'élément sélectionné ou currentIndex() pour obtenir l'index de l'élément sélectionné.
  4. Signaux et slots : QComboBox émet plusieurs signaux tels que currentIndexChanged, currentTextChanged, activated, etc. Vous pouvez les connecter à des fonctions (slots) pour réagir aux changements de sélection ou d'autres interactions de l'utilisateur avec le widget.
  5. Modèles de données : Vous pouvez également utiliser des modèles de données tels que QStandardItemModel pour gérer des listes plus complexes avec des structures hiérarchiques.
  6. Gestion des événements : Vous pouvez également gérer certains événements, comme l'ouverture ou la fermeture du menu déroulant, en utilisant les méthodes showPopup() et hidePopup().

5. Exemple d'utilisation avancée avec signaux et slots

On peut aussi associer des actions à un objet QComboBox à l'aide des signaux et slots:

Dans cet exemple:

  1. Nous créons un objet QComboBox.
  2. Nous ajoutons ensuite une liste d'éléments ('Option 1' à 'Option 5') à ce QComboBox en utilisant la méthode addItems().
  3. Lorsque on exécute cet exemple, on voit un menu déroulant avec les éléments de la liste.
  4. Lorsqu'on sélectionne un élément dans le QComboBox, on peut également capturer cet événement en connectant le signal currentIndexChanged à une fonction.
  5. Cela nous permettra de réagir aux changements de sélection de l'utilisateur.

6. Liste des méthodes et attributs associés à un objet QComboBox

Un objet QComboBox est doté de nombreuses méthodes et attributs qui permettent d'améliorer son usage. Voici une liste des méthodes et des attributs les plus couramment utilisés associés au widget QComboBox dans PyQt5 :



6.1 Méthodes

  1. addItem(text: str): Ajoute un nouvel élément à la liste déroulante, représenté par le texte spécifié.
  2. addItems(items: Iterable[str]): Ajoute plusieurs éléments à la liste déroulante à partir d'un itérable de chaînes de caractères.
  3. insertItem(index: int, text: str): Insère un nouvel élément à la position donnée par l'index avec le texte spécifié.
  4. insertItems(index: int, items: Iterable[str]): Insère plusieurs éléments à partir d'un itérable de chaînes de caractères, à la position donnée par l'index.
  5. removeItem(index: int): Supprime l'élément à la position donnée par l'index.
  6. clear(): Supprime tous les éléments de la liste déroulante.
  7. currentIndex() -> int: Renvoie l'index de l'élément actuellement sélectionné dans la liste déroulante.
  8. currentText() -> str: Renvoie le texte de l'élément actuellement sélectionné dans la liste déroulante.
  9. count() -> int: Renvoie le nombre total d'éléments dans la liste déroulante.
  10. setEditText(text: str): Définit le texte du champ de saisie du QComboBox (pour les QComboBox avec saisie possible).
  11. setCurrentIndex(index: int): Sélectionne l'élément de la liste déroulante à la position donnée par l'index.
  12. setCurrentText(text: str): Sélectionne l'élément de la liste déroulante correspondant au texte spécifié.
  13. showPopup(): Affiche le menu déroulant avec les éléments de la liste.
  14. hidePopup(): Cache le menu déroulant.
  15. clearEditText(): Efface le texte du champ de saisie (pour les QComboBox avec saisie possible).

6.2 Attributs

  1. count (lecture seule) : Renvoie le nombre total d'éléments dans la liste déroulante.
  2. currentText (lecture seule) : Renvoie le texte de l'élément actuellement sélectionné dans la liste déroulante.
  3. currentIndex (lecture seule) : Renvoie l'index de l'élément actuellement sélectionné dans la liste déroulante.
  4. currentData (lecture seule) : Renvoie les données associées à l'élément actuellement sélectionné dans la liste déroulante (si définies).
  5. editable : Détermine si le QComboBox permet la saisie de texte (True) ou si seuls les éléments de la liste peuvent être sélectionnés (False).
  6. sizeAdjustPolicy: Définit le comportement d'ajustement de la taille du QComboBox en fonction de son contenu.
  7. maxCount: Définit le nombre maximum d'éléments que le QComboBox peut afficher (0 pour aucun maximum).
  8. minimumContentsLength: Définit la longueur minimum du champ de saisie en mode déroulant (pour les QComboBox avec saisie possible).
  9. model : Renvoie l'objet modèle de données utilisé par le QComboBox.
  10. itemDelegate : Renvoie l'objet delegate utilisé pour personnaliser l'affichage des éléments.
  11. validator : Renvoie l'objet validator utilisé pour valider le texte saisi dans le champ de saisie.
  12. currentIndexChanged : Signal émis lorsqu'un nouvel élément est sélectionné dans la liste déroulante.
  13. currentTextChanged : Signal émis lorsqu'un nouvel élément texte est sélectionné dans la liste déroulante.

Remarque

Ceci n'est qu'une sélection des méthodes et attributs disponibles dans le widget QComboBox. PyQt5 offre de nombreuses autres fonctionnalités pour personnaliser le comportement et l'apparence du QComboBox dans vos applications PyQt5.

Younes Derfoufi
CRMEF OUJDA

Leave a Reply