QComboBox

The QComboBox widget is a combined button and popup list. More

Inheritance diagram of PySide2.QtWidgets.QComboBox

Inherited by: QFontComboBox

Synopsis

Functions

Virtual functions

Slots

Signals

Detailed Description

../../_images/windows-combobox.png

A QComboBox provides a means of presenting a list of options to the user in a way that takes up the minimum amount of screen space.

A combobox is a selection widget that displays the current item, and can pop up a list of selectable items. A combobox may be editable, allowing the user to modify each item in the list.

Comboboxes can contain pixmaps as well as strings; the insertItem() and setItemText() functions are suitably overloaded. For editable comboboxes, the function clearEditText() is provided, to clear the displayed string without changing the combobox’s contents.

There are three signals emitted if the current item of a combobox changes, currentIndexChanged() , currentTextChanged() and activated() . currentIndexChanged() and currentTextChanged() are always emitted regardless if the change was done programmatically or by user interaction, while activated() is only emitted when the change is caused by user interaction. The highlighted() signal is emitted when the user highlights an item in the combobox popup list. All three signals exist in two versions, one with a QString argument and one with an int argument. If the user selects or highlights a pixmap, only the int signals are emitted. Whenever the text of an editable combobox is changed the editTextChanged() signal is emitted.

When the user enters a new string in an editable combobox, the widget may or may not insert it, and it can insert it in several locations. The default policy is InsertAtBottom but you can change this using setInsertPolicy() .

It is possible to constrain the input to an editable combobox using QValidator ; see setValidator() . By default, any input is accepted.

A combobox can be populated using the insert functions, insertItem() and insertItems() for example. Items can be changed with setItemText() . An item can be removed with removeItem() and all items can be removed with clear() . The text of the current item is returned by currentText() , and the text of a numbered item is returned with text(). The current item can be set with setCurrentIndex() . The number of items in the combobox is returned by count() ; the maximum number of items can be set with setMaxCount() . You can allow editing using setEditable() . For editable comboboxes you can set auto-completion using setCompleter() and whether or not the user can add duplicates is set with setDuplicatesEnabled() .

QComboBox uses the model/view framework for its popup list and to store its items. By default a QStandardItemModel stores the items and a QListView subclass displays the popuplist. You can access the model and view directly (with model() and view() ), but QComboBox also provides functions to set and get item data (e.g., setItemData() and itemText() ). You can also set a new model and view (with setModel() and setView() ). For the text and icon in the combobox label, the data in the model that has the DisplayRole and DecorationRole is used. Note that you cannot alter the SelectionMode of the view() , e.g., by using setSelectionMode() .

class PySide2.QtWidgets.QComboBox([parent=None])

Constructs a combobox with the given parent , using the default model QStandardItemModel .

PySide2.QtWidgets.QComboBox.InsertPolicy

This enum specifies what the QComboBox should do when a new string is entered by the user.

Constant

Description

QComboBox.NoInsert

The string will not be inserted into the combobox.

QComboBox.InsertAtTop

The string will be inserted as the first item in the combobox.

QComboBox.InsertAtCurrent

The current item will be replaced by the string.

QComboBox.InsertAtBottom

The string will be inserted after the last item in the combobox.

QComboBox.InsertAfterCurrent

The string is inserted after the current item in the combobox.

QComboBox.InsertBeforeCurrent

The string is inserted before the current item in the combobox.

QComboBox.InsertAlphabetically

The string is inserted in the alphabetic order in the combobox.

PySide2.QtWidgets.QComboBox.SizeAdjustPolicy

This enum specifies how the size hint of the QComboBox should adjust when new content is added or content changes.

Constant

Description

QComboBox.AdjustToContents

The combobox will always adjust to the contents

QComboBox.AdjustToContentsOnFirstShow

The combobox will adjust to its contents the first time it is shown.

QComboBox.AdjustToMinimumContentsLengthWithIcon

The combobox will adjust to minimumContentsLength plus space for an icon. For performance reasons use this policy on large models.

PySide2.QtWidgets.QComboBox.activated(arg__1)
Parameters

arg__1 – str

Note

This function is deprecated.

PySide2.QtWidgets.QComboBox.activated(index)
Parameters

index – int

PySide2.QtWidgets.QComboBox.addItem(icon, text[, userData=None])
Parameters

Adds an item to the combobox with the given icon and text , and containing the specified userData (stored in the UserRole ). The item is appended to the list of existing items.

PySide2.QtWidgets.QComboBox.addItem(text[, userData=None])
Parameters
  • text – str

  • userData – object

Adds an item to the combobox with the given text , and containing the specified userData (stored in the UserRole ). The item is appended to the list of existing items.

PySide2.QtWidgets.QComboBox.addItems(texts)
Parameters

texts – list of strings

Adds each of the strings in the given texts to the combobox. Each item is appended to the list of existing items in turn.

PySide2.QtWidgets.QComboBox.autoCompletion()
Return type

bool

Note

This function is deprecated.

This property holds whether the combobox provides auto-completion for editable items.

Use setCompleter() instead.

By default, this property is true .

See also

editable

PySide2.QtWidgets.QComboBox.autoCompletionCaseSensitivity()
Return type

CaseSensitivity

Note

This function is deprecated.

This property holds whether string comparisons are case-sensitive or case-insensitive for auto-completion.

By default, this property is CaseInsensitive .

Use setCompleter() instead. Case sensitivity of the auto completion can be changed using setCaseSensitivity() .

See also

autoCompletion

PySide2.QtWidgets.QComboBox.clear()

Clears the combobox, removing all items.

Note: If you have set an external model on the combobox this model will still be cleared when calling this function.

PySide2.QtWidgets.QComboBox.clearEditText()

Clears the contents of the line edit used for editing in the combobox.

PySide2.QtWidgets.QComboBox.completer()
Return type

PySide2.QtWidgets.QCompleter

Returns the completer that is used to auto complete text input for the combobox.

See also

setCompleter() editable

PySide2.QtWidgets.QComboBox.count()
Return type

int

This property holds the number of items in the combobox.

By default, for an empty combo box, this property has a value of 0.

PySide2.QtWidgets.QComboBox.currentData([role=Qt.UserRole])
Parameters

role – int

Return type

object

PySide2.QtWidgets.QComboBox.currentIndex()
Return type

int

This property holds the index of the current item in the combobox..

The current index can change when inserting or removing items.

By default, for an empty combo box or a combo box in which no current item is set, this property has a value of -1.

PySide2.QtWidgets.QComboBox.currentIndexChanged(arg__1)
Parameters

arg__1 – str

Note

This function is deprecated.

PySide2.QtWidgets.QComboBox.currentIndexChanged(index)
Parameters

index – int

PySide2.QtWidgets.QComboBox.currentText()
Return type

str

This property holds the current text.

If the combo box is editable, the current text is the value displayed by the line edit. Otherwise, it is the value of the current item or an empty string if the combo box is empty or no current item is set.

The setter simply calls setEditText() if the combo box is editable. Otherwise, if there is a matching text in the list, currentIndex is set to the corresponding index.

See also

editable setEditText()

PySide2.QtWidgets.QComboBox.currentTextChanged(arg__1)
Parameters

arg__1 – str

PySide2.QtWidgets.QComboBox.duplicatesEnabled()
Return type

bool

This property holds whether the user can enter duplicate items into the combobox.

Note that it is always possible to programmatically insert duplicate items into the combobox.

By default, this property is false (duplicates are not allowed).

PySide2.QtWidgets.QComboBox.editTextChanged(arg__1)
Parameters

arg__1 – str

PySide2.QtWidgets.QComboBox.findData(data[, role=Qt.UserRole[, flags=static_cast<Qt.MatchFlags>(Qt.MatchExactly|Qt.MatchCaseSensitive)]])
Parameters
  • data – object

  • role – int

  • flagsMatchFlags

Return type

int

Returns the index of the item containing the given data for the given role ; otherwise returns -1.

The flags specify how the items in the combobox are searched.

PySide2.QtWidgets.QComboBox.findText(text[, flags=static_cast<Qt.MatchFlags>(Qt.MatchExactly|Qt.MatchCaseSensitive)])
Parameters
  • text – str

  • flagsMatchFlags

Return type

int

Returns the index of the item containing the given text ; otherwise returns -1.

The flags specify how the items in the combobox are searched.

PySide2.QtWidgets.QComboBox.hasFrame()
Return type

bool

This property holds whether the combo box draws itself with a frame.

If enabled (the default) the combo box draws itself inside a frame, otherwise the combo box draws itself without any frame.

PySide2.QtWidgets.QComboBox.hidePopup()

Hides the list of items in the combobox if it is currently visible and resets the internal state, so that if the custom pop-up was shown inside the reimplemented showPopup() , then you also need to reimplement the function to hide your custom pop-up and call the base class implementation to reset the internal state whenever your custom pop-up widget is hidden.

See also

showPopup()

PySide2.QtWidgets.QComboBox.highlighted(arg__1)
Parameters

arg__1 – str

Note

This function is deprecated.

PySide2.QtWidgets.QComboBox.highlighted(index)
Parameters

index – int

PySide2.QtWidgets.QComboBox.iconSize()
Return type

PySide2.QtCore.QSize

This property holds the size of the icons shown in the combobox..

Unless explicitly set this returns the default value of the current style. This size is the maximum size that icons can have; icons of smaller size are not scaled up.

PySide2.QtWidgets.QComboBox.initStyleOption(option)
Parameters

optionPySide2.QtWidgets.QStyleOptionComboBox

Initialize option with the values from this QComboBox . This method is useful for subclasses when they need a QStyleOptionComboBox , but don’t want to fill in all the information themselves.

See also

initFrom()

PySide2.QtWidgets.QComboBox.inputMethodQuery(query, argument)
Parameters
Return type

object

PySide2.QtWidgets.QComboBox.insertItem(index, icon, text[, userData=None])
Parameters

Inserts the icon , text and userData (stored in the UserRole ) into the combobox at the given index .

If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.

See also

insertItems()

PySide2.QtWidgets.QComboBox.insertItem(index, text[, userData=None])
Parameters
  • index – int

  • text – str

  • userData – object

Inserts the text and userData (stored in the UserRole ) into the combobox at the given index .

If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.

See also

insertItems()

PySide2.QtWidgets.QComboBox.insertItems(index, texts)
Parameters
  • index – int

  • texts – list of strings

Inserts the strings from the list into the combobox as separate items, starting at the index specified.

If the index is equal to or higher than the total number of items, the new items are appended to the list of existing items. If the index is zero or negative, the new items are prepended to the list of existing items.

See also

insertItem()

PySide2.QtWidgets.QComboBox.insertPolicy()
Return type

InsertPolicy

This property holds the policy used to determine where user-inserted items should appear in the combobox.

The default value is InsertAtBottom , indicating that new items will appear at the bottom of the list of items.

See also

InsertPolicy

PySide2.QtWidgets.QComboBox.insertSeparator(index)
Parameters

index – int

Inserts a separator item into the combobox at the given index .

If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.

See also

insertItem()

PySide2.QtWidgets.QComboBox.isEditable()
Return type

bool

This property holds whether the combo box can be edited by the user.

By default, this property is false . The effect of editing depends on the insert policy.

Note

When disabling the editable state, the validator and completer are removed.

See also

InsertPolicy

PySide2.QtWidgets.QComboBox.itemData(index[, role=Qt.UserRole])
Parameters
  • index – int

  • role – int

Return type

object

Returns the data for the given role in the given index in the combobox, or Invalid if there is no data for this role.

See also

setItemData()

PySide2.QtWidgets.QComboBox.itemDelegate()
Return type

PySide2.QtWidgets.QAbstractItemDelegate

Returns the item delegate used by the popup list view.

PySide2.QtWidgets.QComboBox.itemIcon(index)
Parameters

index – int

Return type

PySide2.QtGui.QIcon

Returns the icon for the given index in the combobox.

See also

setItemIcon()

PySide2.QtWidgets.QComboBox.itemText(index)
Parameters

index – int

Return type

str

Returns the text for the given index in the combobox.

See also

setItemText()

PySide2.QtWidgets.QComboBox.lineEdit()
Return type

PySide2.QtWidgets.QLineEdit

Returns the line edit used to edit items in the combobox, or None if there is no line edit.

Only editable combo boxes have a line edit.

See also

setLineEdit()

PySide2.QtWidgets.QComboBox.maxCount()
Return type

int

This property holds the maximum number of items allowed in the combobox.

Note

If you set the maximum number to be less then the current amount of items in the combobox, the extra items will be truncated. This also applies if you have set an external model on the combobox.

By default, this property’s value is derived from the highest signed integer available (typically 2147483647).

PySide2.QtWidgets.QComboBox.maxVisibleItems()
Return type

int

This property holds the maximum allowed size on screen of the combo box, measured in items.

By default, this property has a value of 10.

Note

This property is ignored for non-editable comboboxes in styles that returns true for SH_ComboBox_Popup such as the Mac style or the Gtk+ Style.

PySide2.QtWidgets.QComboBox.minimumContentsLength()
Return type

int

This property holds the minimum number of characters that should fit into the combobox..

The default value is 0.

If this property is set to a positive value, the minimumSizeHint() and sizeHint() take it into account.

See also

sizeAdjustPolicy

PySide2.QtWidgets.QComboBox.model()
Return type

PySide2.QtCore.QAbstractItemModel

Returns the model used by the combobox.

See also

setModel()

PySide2.QtWidgets.QComboBox.modelColumn()
Return type

int

This property holds the column in the model that is visible..

If set prior to populating the combo box, the pop-up view will not be affected and will show the first column (using this property’s default value).

By default, this property has a value of 0.

PySide2.QtWidgets.QComboBox.placeholderText()
Return type

str

This property holds Sets a placeholderText text shown when no valid index is set.

The placeholderText will be shown when an invalid index is set. The text is not accessible in the dropdown list. When this function is called before items are added the placeholder text will be shown, otherwise you have to call setCurrentIndex (-1) programmatically if you want to show the placeholder text. Set an empty placeholder text to reset the setting.

When the QComboBox is editable, use setPlaceholderText() instead.

PySide2.QtWidgets.QComboBox.removeItem(index)
Parameters

index – int

Removes the item at the given index from the combobox. This will update the current index if the index is removed.

This function does nothing if index is out of range.

PySide2.QtWidgets.QComboBox.rootModelIndex()
Return type

PySide2.QtCore.QModelIndex

Returns the root model item index for the items in the combobox.

PySide2.QtWidgets.QComboBox.setAutoCompletion(enable)
Parameters

enable – bool

Note

This function is deprecated.

This property holds whether the combobox provides auto-completion for editable items.

Use setCompleter() instead.

By default, this property is true .

See also

editable

PySide2.QtWidgets.QComboBox.setAutoCompletionCaseSensitivity(sensitivity)
Parameters

sensitivityCaseSensitivity

Note

This function is deprecated.

This property holds whether string comparisons are case-sensitive or case-insensitive for auto-completion.

By default, this property is CaseInsensitive .

Use setCompleter() instead. Case sensitivity of the auto completion can be changed using setCaseSensitivity() .

See also

autoCompletion

PySide2.QtWidgets.QComboBox.setCompleter(c)
Parameters

cPySide2.QtWidgets.QCompleter

Sets the completer to use instead of the current completer. If completer is None , auto completion is disabled.

By default, for an editable combo box, a QCompleter that performs case insensitive inline completion is automatically created.

Note

The completer is removed when the editable property becomes false . Setting a completer on a QComboBox that is not editable will be ignored.

See also

completer()

PySide2.QtWidgets.QComboBox.setCurrentIndex(index)
Parameters

index – int

This property holds the index of the current item in the combobox..

The current index can change when inserting or removing items.

By default, for an empty combo box or a combo box in which no current item is set, this property has a value of -1.

PySide2.QtWidgets.QComboBox.setCurrentText(text)
Parameters

text – str

This property holds the current text.

If the combo box is editable, the current text is the value displayed by the line edit. Otherwise, it is the value of the current item or an empty string if the combo box is empty or no current item is set.

The setter simply calls setEditText() if the combo box is editable. Otherwise, if there is a matching text in the list, currentIndex is set to the corresponding index.

See also

editable setEditText()

PySide2.QtWidgets.QComboBox.setDuplicatesEnabled(enable)
Parameters

enable – bool

This property holds whether the user can enter duplicate items into the combobox.

Note that it is always possible to programmatically insert duplicate items into the combobox.

By default, this property is false (duplicates are not allowed).

PySide2.QtWidgets.QComboBox.setEditText(text)
Parameters

text – str

Sets the text in the combobox’s text edit.

PySide2.QtWidgets.QComboBox.setEditable(editable)
Parameters

editable – bool

This property holds whether the combo box can be edited by the user.

By default, this property is false . The effect of editing depends on the insert policy.

Note

When disabling the editable state, the validator and completer are removed.

See also

InsertPolicy

PySide2.QtWidgets.QComboBox.setFrame(arg__1)
Parameters

arg__1 – bool

This property holds whether the combo box draws itself with a frame.

If enabled (the default) the combo box draws itself inside a frame, otherwise the combo box draws itself without any frame.

PySide2.QtWidgets.QComboBox.setIconSize(size)
Parameters

sizePySide2.QtCore.QSize

This property holds the size of the icons shown in the combobox..

Unless explicitly set this returns the default value of the current style. This size is the maximum size that icons can have; icons of smaller size are not scaled up.

PySide2.QtWidgets.QComboBox.setInsertPolicy(policy)
Parameters

policyInsertPolicy

This property holds the policy used to determine where user-inserted items should appear in the combobox.

The default value is InsertAtBottom , indicating that new items will appear at the bottom of the list of items.

See also

InsertPolicy

PySide2.QtWidgets.QComboBox.setItemData(index, value[, role=Qt.UserRole])
Parameters
  • index – int

  • value – object

  • role – int

Sets the data role for the item on the given index in the combobox to the specified value .

See also

itemData()

PySide2.QtWidgets.QComboBox.setItemDelegate(delegate)
Parameters

delegatePySide2.QtWidgets.QAbstractItemDelegate

Sets the item delegate for the popup list view. The combobox takes ownership of the delegate.

Warning

You should not share the same instance of a delegate between comboboxes, widget mappers or views. Doing so can cause incorrect or unintuitive editing behavior since each view connected to a given delegate may receive the closeEditor() signal, and attempt to access, modify or close an editor that has already been closed.

See also

itemDelegate()

PySide2.QtWidgets.QComboBox.setItemIcon(index, icon)
Parameters

Sets the icon for the item on the given index in the combobox.

See also

itemIcon()

PySide2.QtWidgets.QComboBox.setItemText(index, text)
Parameters
  • index – int

  • text – str

Sets the text for the item on the given index in the combobox.

See also

itemText()

PySide2.QtWidgets.QComboBox.setLineEdit(edit)
Parameters

editPySide2.QtWidgets.QLineEdit

Sets the line edit to use instead of the current line edit widget.

The combo box takes ownership of the line edit.

See also

lineEdit()

PySide2.QtWidgets.QComboBox.setMaxCount(max)
Parameters

max – int

This property holds the maximum number of items allowed in the combobox.

Note

If you set the maximum number to be less then the current amount of items in the combobox, the extra items will be truncated. This also applies if you have set an external model on the combobox.

By default, this property’s value is derived from the highest signed integer available (typically 2147483647).

PySide2.QtWidgets.QComboBox.setMaxVisibleItems(maxItems)
Parameters

maxItems – int

This property holds the maximum allowed size on screen of the combo box, measured in items.

By default, this property has a value of 10.

Note

This property is ignored for non-editable comboboxes in styles that returns true for SH_ComboBox_Popup such as the Mac style or the Gtk+ Style.

PySide2.QtWidgets.QComboBox.setMinimumContentsLength(characters)
Parameters

characters – int

This property holds the minimum number of characters that should fit into the combobox..

The default value is 0.

If this property is set to a positive value, the minimumSizeHint() and sizeHint() take it into account.

See also

sizeAdjustPolicy

PySide2.QtWidgets.QComboBox.setModel(model)
Parameters

modelPySide2.QtCore.QAbstractItemModel

Sets the model to be model . model must not be None . If you want to clear the contents of a model, call clear() .

See also

model() clear()

PySide2.QtWidgets.QComboBox.setModelColumn(visibleColumn)
Parameters

visibleColumn – int

This property holds the column in the model that is visible..

If set prior to populating the combo box, the pop-up view will not be affected and will show the first column (using this property’s default value).

By default, this property has a value of 0.

PySide2.QtWidgets.QComboBox.setPlaceholderText(placeholderText)
Parameters

placeholderText – str

This property holds Sets a placeholderText text shown when no valid index is set.

The placeholderText will be shown when an invalid index is set. The text is not accessible in the dropdown list. When this function is called before items are added the placeholder text will be shown, otherwise you have to call setCurrentIndex (-1) programmatically if you want to show the placeholder text. Set an empty placeholder text to reset the setting.

When the QComboBox is editable, use setPlaceholderText() instead.

PySide2.QtWidgets.QComboBox.setRootModelIndex(index)
Parameters

indexPySide2.QtCore.QModelIndex

Sets the root model item index for the items in the combobox.

See also

rootModelIndex()

PySide2.QtWidgets.QComboBox.setSizeAdjustPolicy(policy)
Parameters

policySizeAdjustPolicy

This property holds the policy describing how the size of the combobox changes when the content changes.

The default value is AdjustToContentsOnFirstShow .

See also

SizeAdjustPolicy

PySide2.QtWidgets.QComboBox.setValidator(v)
Parameters

vPySide2.QtGui.QValidator

Sets the validator to use instead of the current validator.

Note

The validator is removed when the editable property becomes false .

See also

validator()

PySide2.QtWidgets.QComboBox.setView(itemView)
Parameters

itemViewPySide2.QtWidgets.QAbstractItemView

Sets the view to be used in the combobox popup to the given itemView . The combobox takes ownership of the view.

Note: If you want to use the convenience views (like QListWidget , QTableWidget or QTreeWidget ), make sure to call setModel() on the combobox with the convenience widgets model before calling this function.

See also

view()

PySide2.QtWidgets.QComboBox.showPopup()

Displays the list of items in the combobox. If the list is empty then no items will be shown.

If you reimplement this function to show a custom pop-up, make sure you call hidePopup() to reset the internal state.

See also

hidePopup()

PySide2.QtWidgets.QComboBox.sizeAdjustPolicy()
Return type

SizeAdjustPolicy

This property holds the policy describing how the size of the combobox changes when the content changes.

The default value is AdjustToContentsOnFirstShow .

See also

SizeAdjustPolicy

PySide2.QtWidgets.QComboBox.textActivated(arg__1)
Parameters

arg__1 – str

PySide2.QtWidgets.QComboBox.textHighlighted(arg__1)
Parameters

arg__1 – str

PySide2.QtWidgets.QComboBox.validator()
Return type

PySide2.QtGui.QValidator

Returns the validator that is used to constrain text input for the combobox.

See also

setValidator() editable

PySide2.QtWidgets.QComboBox.view()
Return type

PySide2.QtWidgets.QAbstractItemView

Returns the list view used for the combobox popup.

See also

setView()