QComboBox Class
Le widget QComboBox associe un bouton à une liste déroulante. En savoir plus...
| En-tête : | #include <QComboBox> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite de : | QWidget |
| Hérité par : |
Types publics
| enum | InsertPolicy { NoInsert, InsertAtTop, InsertAtCurrent, InsertAtBottom, InsertAfterCurrent, …, InsertAlphabetically } |
(since 6.9) enum class | LabelDrawingMode { UseStyle, UseDelegate } |
| enum | SizeAdjustPolicy { AdjustToContents, AdjustToContentsOnFirstShow, AdjustToMinimumContentsLengthWithIcon } |
Propriétés
|
|
Fonctions publiques
| QComboBox(QWidget *parent = nullptr) | |
| virtual | ~QComboBox() |
| void | addItem(const QString &text, const QVariant &userData = QVariant()) |
| void | addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant()) |
| void | addItems(const QStringList &texts) |
| QCompleter * | completer() const |
| int | count() const |
| QVariant | currentData(int role = Qt::UserRole) const |
| int | currentIndex() const |
| QString | currentText() const |
| bool | duplicatesEnabled() const |
| int | findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = static_cast<Qt::MatchFlags>(Qt::MatchExactly|Qt::MatchCaseSensitive)) const |
| int | findText(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const |
| bool | hasFrame() const |
| virtual void | hidePopup() |
| QSize | iconSize() const |
| void | insertItem(int index, const QString &text, const QVariant &userData = QVariant()) |
| void | insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData = QVariant()) |
| void | insertItems(int index, const QStringList &list) |
| QComboBox::InsertPolicy | insertPolicy() const |
| void | insertSeparator(int index) |
| bool | isEditable() const |
| QVariant | itemData(int index, int role = Qt::UserRole) const |
| QAbstractItemDelegate * | itemDelegate() const |
| QIcon | itemIcon(int index) const |
| QString | itemText(int index) const |
| QComboBox::LabelDrawingMode | labelDrawingMode() const |
| QLineEdit * | lineEdit() const |
| int | maxCount() const |
| int | maxVisibleItems() const |
| int | minimumContentsLength() const |
| QAbstractItemModel * | model() const |
| int | modelColumn() const |
| QString | placeholderText() const |
| void | removeItem(int index) |
| QModelIndex | rootModelIndex() const |
| void | setCompleter(QCompleter *completer) |
| void | setDuplicatesEnabled(bool enable) |
| void | setEditable(bool editable) |
| void | setFrame(bool) |
| void | setIconSize(const QSize &size) |
| void | setInsertPolicy(QComboBox::InsertPolicy policy) |
| void | setItemData(int index, const QVariant &value, int role = Qt::UserRole) |
| void | setItemDelegate(QAbstractItemDelegate *delegate) |
| void | setItemIcon(int index, const QIcon &icon) |
| void | setItemText(int index, const QString &text) |
| void | setLabelDrawingMode(QComboBox::LabelDrawingMode labelDrawing) |
| void | setLineEdit(QLineEdit *edit) |
| void | setMaxCount(int max) |
| void | setMaxVisibleItems(int maxItems) |
| void | setMinimumContentsLength(int characters) |
| virtual void | setModel(QAbstractItemModel *model) |
| void | setModelColumn(int visibleColumn) |
| void | setPlaceholderText(const QString &placeholderText) |
| void | setRootModelIndex(const QModelIndex &index) |
| void | setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy) |
| void | setValidator(const QValidator *validator) |
| void | setView(QAbstractItemView *itemView) |
| virtual void | showPopup() |
| QComboBox::SizeAdjustPolicy | sizeAdjustPolicy() const |
| const QValidator * | validator() const |
| QAbstractItemView * | view() const |
Fonctions publiques réimplémentées
| virtual bool | event(QEvent *event) override |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Slots publics
| void | clear() |
| void | clearEditText() |
| void | setCurrentIndex(int index) |
| void | setCurrentText(const QString &text) |
| void | setEditText(const QString &text) |
Signaux
| void | activated(int index) |
| void | currentIndexChanged(int index) |
| void | currentTextChanged(const QString &text) |
| void | editTextChanged(const QString &text) |
| void | highlighted(int index) |
| void | textActivated(const QString &text) |
| void | textHighlighted(const QString &text) |
Fonctions protégées
| virtual void | initStyleOption(QStyleOptionComboBox *option) const |
Fonctions protégées réimplémentées
| virtual void | changeEvent(QEvent *e) override |
| virtual void | contextMenuEvent(QContextMenuEvent *e) override |
| virtual void | focusInEvent(QFocusEvent *e) override |
| virtual void | focusOutEvent(QFocusEvent *e) override |
| virtual void | hideEvent(QHideEvent *e) override |
| virtual void | inputMethodEvent(QInputMethodEvent *e) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | keyReleaseEvent(QKeyEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *e) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | showEvent(QShowEvent *e) override |
| virtual void | wheelEvent(QWheelEvent *e) override |
Description détaillée
QCombobox repliée |
QCombobox déployée |
Fonctionnalités d'affichage
Une QComboBox est un moyen compact de présenter une liste d'options à l'utilisateur.
Une liste déroulante est un widget de sélection qui affiche l’élément actuel et fait apparaître une liste d’éléments sélectionnables lorsqu’on clique dessus. Les listes déroulantes peuvent contenir des images ainsi que des chaînes de caractères si les fonctions insertItem() et setItemText() sont surchargées de manière appropriée.
Fonctionnalités d’édition
Une liste déroulante peut être modifiable, ce qui permet à l’utilisateur de modifier chaque élément de la liste. Pour les listes déroulantes modifiables, la fonction clearEditText() est fournie afin d’effacer la chaîne affichée sans modifier le contenu de la liste déroulante.
Lorsque l’utilisateur saisit une nouvelle chaîne dans une liste déroulante modifiable, le widget peut choisir de l’insérer ou non, et il peut l’insérer à plusieurs emplacements. Le comportement par défaut est InsertAtBottom, mais vous pouvez le modifier à l’aide de setInsertPolicy().
Il est possible de restreindre la saisie dans une liste déroulante modifiable à l’aide de ` QValidator` ; voir ` setValidator()`. Par défaut, toute saisie est acceptée.
Une liste déroulante peut être remplie à l’aide des fonctions d’insertion, par exemple insertItem() et insertItems(). Les éléments peuvent être modifiés à l’aide de setItemText(). Un élément peut être supprimé à l’aide de removeItem() et tous les éléments peuvent être supprimés à l’aide de clear(). Le texte de l’élément actuel est renvoyé par currentText(), et le texte d’un élément numéroté est renvoyé par text(). L’élément actuel peut être défini à l’aide de setCurrentIndex(). Le nombre d’éléments de la liste déroulante est renvoyé par count(); le nombre maximal d’éléments peut être défini à l’aide de setMaxCount(). Vous pouvez autoriser la modification à l’aide de setEditable(). Pour les listes déroulantes modifiables, vous pouvez activer la saisie semi-automatique à l’aide de setCompleter() et déterminer si l’utilisateur peut ou non ajouter des doublons à l’aide de setDuplicatesEnabled().
Signaux
Trois signaux sont émis lorsque l’élément actif d’une liste déroulante change : currentIndexChanged(), currentTextChanged() et activated(). Les signaux currentIndexChanged() et currentTextChanged() sont toujours émis, que la modification ait été effectuée par programmation ou par l’interaction de l’utilisateur, tandis que le signal activated() n’est émis que lorsque la modification est provoquée par l’interaction de l’utilisateur. Le signal highlighted() est émis lorsque l’utilisateur met en surbrillance un élément dans la liste contextuelle de la liste déroulante. Ces trois signaux existent en deux versions : l’une avec un argument « QString » et l’autre avec un argument « int ». Si l’utilisateur sélectionne ou met en surbrillance une image (pixmap), seuls les signaux « int » sont émis. Chaque fois que le texte d’une liste déroulante modifiable est modifié, le signal « editTextChanged() » est émis.
Architecture modèle/vue
QComboBox utilise l’architecture modèle/vue pour sa liste déroulante et pour stocker ses éléments. Par défaut, un objet ` QStandardItemModel ` stocke les éléments et une sous-classe de ` QListView ` affiche la liste déroulante. Vous pouvez accéder directement au modèle et à la vue (via model() et view()), mais QComboBox fournit également des fonctions permettant de définir et de récupérer les données des éléments, par exemple setItemData() et itemText(). Vous pouvez également définir un nouveau modèle et une nouvelle vue (à l’aide de setModel() et setView()). Pour le texte et l’icône de l’étiquette de la liste déroulante, les données du modèle associées aux propriétés Qt::DisplayRole et Qt::DecorationRole sont utilisées.
Remarque : vous ne pouvez pas modifier l’ SelectionMode de la méthode view(), par exemple en utilisant setSelectionMode().
Voir également QLineEdit, QSpinBox, QRadioButton et QButtonGroup.
Documentation sur les types de membres
enum QComboBox::InsertPolicy
Cette énumération définit le comportement de l'QComboBox e lorsqu'une nouvelle chaîne de caractères est saisie par l'utilisateur.
| Constante | Valeur | Description |
|---|---|---|
QComboBox::NoInsert | 0 | La chaîne ne sera pas insérée dans la liste déroulante. |
QComboBox::InsertAtTop | 1 | La chaîne sera insérée en tant que premier élément de la liste déroulante. |
QComboBox::InsertAtCurrent | 2 | L'élément actuel sera remplacé par la chaîne. |
QComboBox::InsertAtBottom | 3 | La chaîne sera insérée après le dernier élément de la liste déroulante. |
QComboBox::InsertAfterCurrent | 4 | La chaîne est insérée après l'élément actuel de la liste déroulante. |
QComboBox::InsertBeforeCurrent | 5 | La chaîne est insérée avant l'élément actuel de la liste déroulante. |
QComboBox::InsertAlphabetically | 6 | La chaîne est insérée dans la liste déroulante selon l'ordre alphabétique. |
[since 6.9] enum class QComboBox::LabelDrawingMode
Cette énumération définit la manière dont la liste déroulante affiche son libellé.
| Constante | Valeur | Description |
|---|---|---|
QComboBox::LabelDrawingMode::UseStyle | 0 | La liste déroulante utilise l'style pour afficher son libellé. |
QComboBox::LabelDrawingMode::UseDelegate | 1 | La liste déroulante utilise l'item delegate pour afficher le libellé. Définissez un délégué d'élément approprié lorsque vous utilisez ce mode. |
Cette énumération a été introduite dans Qt 6.9.
Voir également « labelDrawingMode » et l'exemple « Books ».
enum QComboBox::SizeAdjustPolicy
Cette énumération spécifie comment l'indication de taille de l'QComboBox doit s'ajuster lorsque du nouveau contenu est ajouté ou que le contenu change.
| Constante | Valeur | Description |
|---|---|---|
QComboBox::AdjustToContents | 0 | La liste déroulante s'adaptera toujours à son contenu |
QComboBox::AdjustToContentsOnFirstShow | 1 | La liste déroulante s'adaptera à son contenu lors de son premier affichage. |
QComboBox::AdjustToMinimumContentsLengthWithIcon | 2 | La liste déroulante s'adaptera à la valeur « minimumContentsLength » en ajoutant un espace pour une icône. Pour des raisons de performances, utilisez cette règle sur les modèles volumineux. |
Documentation sur les propriétés
[read-only] count : int
Cette propriété indique le nombre d'éléments contenus dans la liste déroulante.
Par défaut, pour une liste déroulante vide, cette propriété a la valeur 0.
Fonctions d'accès :
| int | count() const |
[read-only] currentData : QVariant
Cette propriété contient les données relatives à l'élément actuel
Par défaut, pour une liste déroulante vide ou pour laquelle aucun élément n'est sélectionné, cette propriété contient une valeur non valide QVariant.
Fonctions d'accès :
| QVariant | currentData(int role = Qt::UserRole) const |
currentIndex : int
Cette propriété contient l'index de l'élément actuel dans la liste déroulante.
L'index actuel peut changer lors de l'ajout ou de la suppression d'éléments.
Par défaut, pour une liste déroulante vide ou dans laquelle aucun élément n'est sélectionné, cette propriété a la valeur -1.
Fonctions d'accès :
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
Signal de notification :
| void | currentIndexChanged(int index) |
currentText : QString
Cette propriété contient le texte actuel
Si la liste déroulante est modifiable, le texte actuel correspond à la valeur affichée dans le champ de saisie. Sinon, il s'agit de la valeur de l'élément actuel ou d'une chaîne vide si la liste déroulante est vide ou si aucun élément n'est sélectionné.
La méthode setCurrentText() appelle simplement la méthode setEditText() si la liste déroulante est modifiable. Sinon, s’il existe un texte correspondant dans la liste, currentIndex est défini sur l’index correspondant.
Fonctions d’accès :
| QString | currentText() const |
| void | setCurrentText(const QString &text) |
Signal de notification :
| void | currentTextChanged(const QString &text) |
Voir également editable et setEditText().
duplicatesEnabled : bool
Cette propriété détermine si l'utilisateur peut saisir des éléments en double dans la liste déroulante.
Notez qu'il est toujours possible d'insérer par programmation des éléments en double dans la liste déroulante.
Par défaut, cette propriété est définie sur « false » (les doublons ne sont pas autorisés).
Fonctions d'accès :
| bool | duplicatesEnabled() const |
| void | setDuplicatesEnabled(bool enable) |
editable : bool
Cette propriété détermine si la liste déroulante peut être modifiée par l'utilisateur.
Par défaut, cette propriété est définie sur « false ». L'effet de la modification dépend de la politique d'insertion.
Remarque : lorsque l'état « editable » est désactivé, le validateur et le compléteur sont supprimés.
Fonctions d'accès :
| bool | isEditable() const |
| void | setEditable(bool editable) |
Voir également « InsertPolicy ».
frame : bool
Cette propriété détermine si la liste déroulante s'affiche avec ou sans cadre.
Si cette propriété est activée (valeur par défaut), la liste déroulante s'affiche à l'intérieur d'un cadre ; dans le cas contraire, elle s'affiche sans cadre.
Fonctions d'accès :
| bool | hasFrame() const |
| void | setFrame(bool) |
iconSize : QSize
Cette propriété définit la taille des icônes affichées dans la liste déroulante.
À moins d'être explicitement définie, cette propriété renvoie la valeur par défaut du style actuel. Cette taille correspond à la taille maximale que peuvent avoir les icônes ; les icônes de taille inférieure ne sont pas agrandies.
Fonctions d'accès :
| QSize | iconSize() const |
| void | setIconSize(const QSize &size) |
insertPolicy : InsertPolicy
Cette propriété définit la règle permettant de déterminer à quel endroit les éléments ajoutés par l'utilisateur doivent apparaître dans la liste déroulante.
La valeur par défaut est « InsertAtBottom », ce qui indique que les nouveaux éléments apparaîtront en bas de la liste des éléments.
Fonctions d'accès :
| QComboBox::InsertPolicy | insertPolicy() const |
| void | setInsertPolicy(QComboBox::InsertPolicy policy) |
Voir également InsertPolicy.
[since 6.9] labelDrawingMode : LabelDrawingMode
Cette propriété définit le mode utilisé par la liste déroulante pour afficher son libellé.
La valeur par défaut est « UseStyle ». Lorsque vous modifiez cette propriété pour « UseDelegate », veillez à définir également un délégué approprié : « item delegate ». Le délégué par défaut dépend du style et peut ne pas convenir au dessin de l'étiquette.
Cette énumération a été introduite dans Qt 6.9.
Fonctions d’accès :
| QComboBox::LabelDrawingMode | labelDrawingMode() const |
| void | setLabelDrawingMode(QComboBox::LabelDrawingMode labelDrawing) |
Voir également l’exemple Books.
maxCount : int
Cette propriété définit le nombre maximal d'éléments autorisés dans la liste déroulante.
Remarque : si vous définissez un nombre maximal inférieur au nombre actuel d'éléments dans la liste déroulante, les éléments supplémentaires seront tronqués. Cela s'applique également si vous avez défini un modèle externe pour la liste déroulante.
Par défaut, la valeur de cette propriété est dérivée du plus grand entier signé disponible (généralement 2147483647).
Fonctions d'accès :
| int | maxCount() const |
| void | setMaxCount(int max) |
maxVisibleItems : int
Cette propriété définit la taille maximale autorisée à l'écran de la liste déroulante, mesurée en éléments
Par défaut, cette propriété a une valeur de 10.
Remarque : cette propriété est ignorée pour les listes déroulantes non modifiables dans les styles qui renvoient « true » pour la propriété « QStyle::SH_ComboBox_Popup », tels que le style Mac ou le style Gtk+.
Fonctions d’accès :
| int | maxVisibleItems() const |
| void | setMaxVisibleItems(int maxItems) |
minimumContentsLength : int
Cette propriété définit le nombre minimum de caractères devant tenir dans la liste déroulante.
La valeur par défaut est 0.
Si cette propriété est définie sur une valeur positive, les méthodes minimumSizeHint() et sizeHint() en tiennent compte.
Fonctions d'accès :
| int | minimumContentsLength() const |
| void | setMinimumContentsLength(int characters) |
Voir également sizeAdjustPolicy.
modelColumn : int
Cette propriété détermine la colonne du modèle qui est visible.
Si elle est définie avant le remplissage de la liste déroulante, la vue contextuelle n'en sera pas affectée et affichera la première colonne (en utilisant la valeur par défaut de cette propriété).
Par défaut, cette propriété a la valeur 0.
Remarque : dans une liste déroulante modifiable, la colonne visible devient également la colonne d'completion column.
Fonctions d’accès :
| int | modelColumn() const |
| void | setModelColumn(int visibleColumn) |
placeholderText : QString
Définit un texte d’ placeholderText s affiché lorsqu’aucun index valide n’est défini.
Le texte d'placeholderText sera affiché lorsqu'un index invalide est défini. Ce texte n'est pas accessible dans la liste déroulante. Lorsque cette fonction est appelée avant l'ajout d'éléments, le texte de remplacement s'affiche ; sinon, vous devez appeler setCurrentIndex(-1) par programmation si vous souhaitez afficher le texte de remplacement. Définissez un texte de remplacement vide pour réinitialiser le paramètre.
Lorsque l’ QComboBox est modifiable, utilisez plutôt QLineEdit::setPlaceholderText().
Fonctions d’accès :
| QString | placeholderText() const |
| void | setPlaceholderText(const QString &placeholderText) |
sizeAdjustPolicy : SizeAdjustPolicy
Cette propriété contient la règle décrivant comment la taille de la liste déroulante évolue lorsque son contenu change.
La valeur par défaut est « AdjustToContentsOnFirstShow ».
Fonctions d'accès :
| QComboBox::SizeAdjustPolicy | sizeAdjustPolicy() const |
| void | setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy) |
Voir également SizeAdjustPolicy.
Documentation sur les fonctions membres
[explicit] QComboBox::QComboBox(QWidget *parent = nullptr)
Crée une liste déroulante à partir de l'parent fourni, en utilisant le modèle par défaut QStandardItemModel.
[virtual noexcept] QComboBox::~QComboBox()
Supprime la liste déroulante.
[signal] void QComboBox::activated(int index)
Ce signal est émis lorsque l'utilisateur sélectionne un élément dans la liste déroulante. L'index s de l'élément est transmise. Notez que ce signal est émis même lorsque la sélection n'a pas changé. Si vous souhaitez savoir quand la sélection change réellement, utilisez le signal currentIndexChanged() ou currentTextChanged().
void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant())
Ajoute un élément à la liste déroulante avec l'text, et contenant l'userData spécifiée (stockée dans Qt::UserRole). L'élément est ajouté à la fin de la liste des éléments existants.
void QComboBox::addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
Ajoute un élément à la liste déroulante avec les valeurs « icon » et « text » indiquées, et contenant la valeur « userData » spécifiée (stockée dans « Qt::UserRole »). L'élément est ajouté à la fin de la liste des éléments existants.
void QComboBox::addItems(const QStringList &texts)
Ajoute chacune des chaînes contenues dans l'texts ion fournie à la liste déroulante. Chaque élément est ajouté à la liste des éléments existants, les uns après les autres.
[override virtual protected] void QComboBox::changeEvent(QEvent *e)
Réimplémente : QWidget::changeEvent(QEvent *event).
[slot] void QComboBox::clear()
Efface la liste déroulante en supprimant tous les éléments.
Remarque : si vous avez défini un modèle externe pour la liste déroulante, ce modèle sera tout de même effacé lors de l'appel de cette fonction.
[slot] void QComboBox::clearEditText()
Efface le contenu de la zone de saisie utilisée pour la modification dans la liste déroulante.
QCompleter *QComboBox::completer() const
Renvoie le composant de saisie semi-automatique utilisé pour compléter automatiquement le texte saisi dans la liste déroulante.
Voir également setCompleter() et editable.
[override virtual protected] void QComboBox::contextMenuEvent(QContextMenuEvent *e)
Réimplémente : QWidget::contextMenuEvent(QContextMenuEvent *event).
[signal] void QComboBox::currentIndexChanged(int index)
Ce signal est émis chaque fois que l'currentIndex, dans la liste déroulante, change, que ce soit à la suite d'une interaction de l'utilisateur ou par programmation. L'index de l'élément est transmise, ou la valeur -1 si la liste déroulante se retrouve vide ou si l'currentIndex a été réinitialisée.
Remarque : signalde notification pour la propriété currentIndex.
[signal] void QComboBox::currentTextChanged(const QString &text)
Ce signal est émis chaque fois que la valeur de ` currentText ` change. La nouvelle valeur est transmise sous la forme ` text`.
Remarque : il n'est pas émis si currentText reste inchangé, même si currentIndex change.
Remarque : signalde notification pour la propriété currentText.
[signal] void QComboBox::editTextChanged(const QString &text)
Ce signal est émis lorsque le texte du widget de saisie de la liste déroulante est modifié. Le nouveau texte est spécifié par text.
[override virtual] bool QComboBox::event(QEvent *event)
Réimplémente : QWidget::event(QEvent *event).
int QComboBox::findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = static_cast<Qt::MatchFlags>(Qt::MatchExactly|Qt::MatchCaseSensitive)) const
Renvoie l'index de l'élément contenant l'data donné pour l'role donné ; sinon, renvoie -1.
Les flags spécifient la manière dont la recherche s'effectue parmi les éléments de la liste déroulante.
int QComboBox::findText(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const
Renvoie l'index de l'élément contenant l'text donnée ; sinon, renvoie -1.
Les flags spécifient comment les éléments de la liste déroulante sont recherchés.
[override virtual protected] void QComboBox::focusInEvent(QFocusEvent *e)
Réimplémente : QWidget::focusInEvent(QFocusEvent *event).
[override virtual protected] void QComboBox::focusOutEvent(QFocusEvent *e)
Réimplémente : QWidget::focusOutEvent(QFocusEvent *event).
[override virtual protected] void QComboBox::hideEvent(QHideEvent *e)
Réimplémente : QWidget::hideEvent(QHideEvent *event).
[virtual] void QComboBox::hidePopup()
Masque la liste des éléments de la liste déroulante si celle-ci est actuellement visible et réinitialise l'état interne, de sorte que si la fenêtre contextuelle personnalisée a été affichée dans la méthode showPopup() réimplémentée, vous devez également réimplémenter la fonction hidePopup() pour masquer votre fenêtre contextuelle personnalisée et appeler l'implémentation de la classe parente afin de réinitialiser l'état interne chaque fois que votre widget de fenêtre contextuelle personnalisé est masqué.
Voir également showPopup().
[signal] void QComboBox::highlighted(int index)
Ce signal est émis lorsqu'un élément de la liste déroulante de la liste combinée est sélectionné par l'utilisateur. L'index e de cet élément est transmise.
[virtual protected] void QComboBox::initStyleOption(QStyleOptionComboBox *option) const
Initialisez ` option ` avec les valeurs fournies à l'adresse suivante : QComboBox. Cette méthode est utile pour les sous-classes qui ont besoin d'un ` QStyleOptionComboBox`, mais ne souhaitent pas renseigner elles-mêmes toutes les informations.
Voir également QStyleOption::initFrom().
[override virtual protected] void QComboBox::inputMethodEvent(QInputMethodEvent *e)
Réimplémente : QWidget::inputMethodEvent(QInputMethodEvent *event).
[override virtual] QVariant QComboBox::inputMethodQuery(Qt::InputMethodQuery query) const
Réimplémente : ` QWidget::inputMethodQuery` (requête `Qt::InputMethodQuery` de type `const`).
void QComboBox::insertItem(int index, const QString &text, const QVariant &userData = QVariant())
Insère les éléments text et userData (stockés dans le fichier Qt::UserRole) dans la liste déroulante située à l'adresse index.
Si l’index est égal ou supérieur au nombre total d’éléments, le nouvel élément est ajouté à la fin de la liste des éléments existants. Si l’index est égal à zéro ou négatif, le nouvel élément est ajouté au début de la liste des éléments existants.
Voir également insertItems().
void QComboBox::insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
Insère les éléments icon, text et userData (stockés dans le fichier Qt::UserRole) dans la liste déroulante située à l'adresse index.
Si l'index est égal ou supérieur au nombre total d'éléments, le nouvel élément est ajouté à la fin de la liste des éléments existants. Si l'index est égal à zéro ou négatif, le nouvel élément est ajouté au début de la liste des éléments existants.
Voir également insertItems().
void QComboBox::insertItems(int index, const QStringList &list)
Insère les chaînes de caractères provenant de l'list dans la liste déroulante sous forme d'éléments distincts, en commençant à l'index spécifiée.
Si l'index est égal ou supérieur au nombre total d'éléments, les nouveaux éléments sont ajoutés à la fin de la liste des éléments existants. Si l'index est égal à zéro ou négatif, les nouveaux éléments sont ajoutés au début de la liste des éléments existants.
Voir aussi insertItem().
void QComboBox::insertSeparator(int index)
Insère un élément séparateur dans la liste déroulante à l'index indiquée.
Si l'index est égal ou supérieur au nombre total d'éléments, le nouvel élément est ajouté à la fin de la liste des éléments existants. Si l'index est égal à zéro ou négatif, le nouvel élément est ajouté au début de la liste des éléments existants.
Voir également insertItem().
QVariant QComboBox::itemData(int index, int role = Qt::UserRole) const
Renvoie les données relatives à l'role spécifié dans l'index indiquée dans la liste déroulante, ou une QVariant non valide s'il n'existe aucune donnée pour ce rôle.
Voir également setItemData().
QAbstractItemDelegate *QComboBox::itemDelegate() const
Renvoie le délégué d'élément utilisé par la vue de liste contextuelle.
Voir aussi setItemDelegate().
QIcon QComboBox::itemIcon(int index) const
Renvoie l'icône correspondant à l'index donné dans la liste déroulante.
Voir aussi setItemIcon().
QString QComboBox::itemText(int index) const
Renvoie le texte correspondant à l'index ion indiquée dans la liste déroulante.
Voir aussi setItemText().
[override virtual protected] void QComboBox::keyPressEvent(QKeyEvent *e)
Réimplémente : QWidget::keyPressEvent(QKeyEvent *event).
[override virtual protected] void QComboBox::keyReleaseEvent(QKeyEvent *e)
Réimplémente : QWidget::keyReleaseEvent(QKeyEvent *event).
QLineEdit *QComboBox::lineEdit() const
Renvoie le champ de saisie utilisé pour modifier les éléments de la liste déroulante, ou la valeur « nullptr » s'il n'y a pas de champ de saisie.
Seules les listes déroulantes modifiables disposent d'un champ de saisie.
Voir aussi setLineEdit().
[override virtual] QSize QComboBox::minimumSizeHint() const
Réimplémente une fonction d'accès pour la propriété : QWidget::minimumSizeHint.
QAbstractItemModel *QComboBox::model() const
Renvoie le modèle utilisé par la liste déroulante.
Voir aussi setModel().
[override virtual protected] void QComboBox::mousePressEvent(QMouseEvent *e)
Réimplémente : QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected] void QComboBox::mouseReleaseEvent(QMouseEvent *e)
Réimplémente : QWidget::mouseReleaseEvent(QMouseEvent *event).
[override virtual protected] void QComboBox::paintEvent(QPaintEvent *e)
Réimplémente : QWidget::paintEvent(QPaintEvent *event).
void QComboBox::removeItem(int index)
Supprime de la liste déroulante l'élément situé à l'index indiquée. Cette opération mettra à jour l'index actuel si celui-ci est supprimé.
Cette fonction ne fait rien si l'index e est hors de la plage autorisée.
[override virtual protected] void QComboBox::resizeEvent(QResizeEvent *e)
Réimplémente : QWidget::resizeEvent(QResizeEvent *event).
QModelIndex QComboBox::rootModelIndex() const
Renvoie l'index de l'élément racine du modèle pour les éléments de la liste déroulante.
Voir également setRootModelIndex().
void QComboBox::setCompleter(QCompleter *completer)
Définit l'completer à utiliser à la place de l' actuel. Si completer est nullptr, la saisie semi-automatique est désactivée.
Par défaut, pour une liste déroulante modifiable, un « QCompleter » effectuant une complétion en ligne sans distinction de casse est automatiquement créé.
Remarque : le module de complétion est supprimé lorsque la propriété editable prend la valeur false, ou lorsque le champ de saisie est remplacé par un appel à setLineEdit(). La définition d’un module de complétion sur un QComboBox non modifiable sera ignorée.
Voir également completer().
[slot] void QComboBox::setEditText(const QString &text)
Définit l'text e dans le champ de saisie de texte de la liste déroulante.
void QComboBox::setItemData(int index, const QVariant &value, int role = Qt::UserRole)
Définit l’ role de données de l’élément situé à l’ index indiquée dans la liste déroulante sur l’ value spécifiée.
Voir aussi itemData().
void QComboBox::setItemDelegate(QAbstractItemDelegate *delegate)
Définit l'élément delegate pour la vue de liste contextuelle. La liste déroulante prend en charge le délégué.
Tout délégué existant sera supprimé, mais pas effacé. ` QComboBox ` ne prend pas possession de ` delegate`.
Avertissement : vous ne devez pas partager la même instance d’un délégué entre des listes déroulantes, des mappeurs de widgets ou des vues. Cela pourrait entraîner un comportement d’édition incorrect ou contre-intuitif, car chaque vue connectée à un délégué donné peut recevoir le signal ` closeEditor()` et tenter d’accéder, de modifier ou de fermer un éditeur qui a déjà été fermé.
Voir également ` itemDelegate()`.
void QComboBox::setItemIcon(int index, const QIcon &icon)
Définit la propriété « icon » de l'élément situé à l'index indiquée dans la liste déroulante.
Voir également itemIcon().
void QComboBox::setItemText(int index, const QString &text)
Définit la propriété « text » de l'élément situé à l'index spécifiée dans la liste déroulante.
Voir aussi itemText().
void QComboBox::setLineEdit(QLineEdit *edit)
Définit la zone de saisie « line edit » à utiliser à la place du widget de saisie de ligne actuel.
La liste déroulante prend en charge le champ de saisie.
Remarque : comme le champ de saisie de la liste déroulante gère l'QCompleter, tout appel antérieur à la fonction setCompleter() n'aura plus aucun effet.
Voir également ` lineEdit()`.
[virtual] void QComboBox::setModel(QAbstractItemModel *model)
Définit le modèle sur « model ». « model » ne doit pas être « nullptr ». Si vous souhaitez effacer le contenu d'un modèle, appelez la fonction « clear() ».
Remarque : si la liste déroulante est modifiable, la valeur « model » sera également définie sur le composant de complétion de la zone de saisie.
Voir également model(), clear() et setCompleter().
void QComboBox::setRootModelIndex(const QModelIndex &index)
Définit l'élément de modèle racine index pour les éléments de la liste déroulante.
Voir également rootModelIndex().
void QComboBox::setValidator(const QValidator *validator)
Définit le validateur « validator » à utiliser à la place du validateur actuel.
Remarque : le validateur est supprimé lorsque la propriété editable prend la valeur false.
Voir également validator().
void QComboBox::setView(QAbstractItemView *itemView)
Définit la vue à utiliser dans la fenêtre contextuelle de la liste déroulante sur la vue spécifiée itemView. La liste déroulante prend en charge la vue.
Remarque : si vous souhaitez utiliser les vues prédéfinies (telles que QListWidget, QTableWidget ou QTreeWidget), veillez à appeler la méthode setModel() sur la liste déroulante avec le modèle de widgets prédéfini avant d’appeler cette fonction.
Voir également view().
[override virtual protected] void QComboBox::showEvent(QShowEvent *e)
Réimplémente : QWidget::showEvent(QShowEvent *event).
[virtual] void QComboBox::showPopup()
Affiche la liste des éléments de la liste déroulante. Si la liste est vide, aucun élément ne s'affichera.
Si vous réimplémentez cette fonction pour afficher une fenêtre contextuelle personnalisée, veillez à appeler hidePopup() pour réinitialiser l'état interne.
Voir également hidePopup().
[override virtual] QSize QComboBox::sizeHint() const
Réimplémente une fonction d'accès pour la propriété : QWidget::sizeHint.
Cette implémentation met en cache l'indication de taille afin d'éviter tout redimensionnement lorsque le contenu change de manière dynamique. Pour invalider la valeur mise en cache, modifiez la propriété sizeAdjustPolicy.
[signal] void QComboBox::textActivated(const QString &text)
Ce signal est émis lorsque l'utilisateur sélectionne un élément dans la liste déroulante. L'text s de cet élément est transmise. Notez que ce signal est émis même si le choix n'a pas changé. Si vous souhaitez savoir à quel moment le choix change réellement, utilisez le signal currentIndexChanged() ou currentTextChanged().
[signal] void QComboBox::textHighlighted(const QString &text)
Ce signal est émis lorsqu'un élément de la liste déroulante d'une liste combinée est sélectionné par l'utilisateur. L'text e de cet élément est transmise.
const QValidator *QComboBox::validator() const
Renvoie le validateur utilisé pour valider la saisie de texte dans la liste déroulante.
Voir également setValidator() et editable.
QAbstractItemView *QComboBox::view() const
Renvoie la vue de liste utilisée pour la fenêtre contextuelle de la liste déroulante.
Voir aussi setView().
[override virtual protected] void QComboBox::wheelEvent(QWheelEvent *e)
Réimplémente : QWidget::wheelEvent(QWheelEvent *event).
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.

