- class QComboBox¶
The
QComboBox
widget combines a button with a dropdown list. More…Inherited by:
QFontComboBox
Synopsis¶
Properties¶
countᅟ
- The number of items in the comboboxcurrentDataᅟ
- The data for the current itemcurrentIndexᅟ
- The index of the current item in the comboboxcurrentTextᅟ
- The current textduplicatesEnabledᅟ
- Whether the user can enter duplicate items into the comboboxeditableᅟ
- Whether the combo box can be edited by the userframeᅟ
- Whether the combo box draws itself with a frameiconSizeᅟ
- The size of the icons shown in the comboboxinsertPolicyᅟ
- The policy used to determine where user-inserted items should appear in the comboboxmaxCountᅟ
- The maximum number of items allowed in the comboboxmaxVisibleItemsᅟ
- The maximum allowed size on screen of the combo box, measured in itemsminimumContentsLengthᅟ
- The minimum number of characters that should fit into the comboboxmodelColumnᅟ
- The column in the model that is visibleplaceholderTextᅟ
- Sets a placeholderText text shown when no valid index is setsizeAdjustPolicyᅟ
- The policy describing how the size of the combobox changes when the content changes
Methods¶
def
__init__()
def
addItem()
def
addItems()
def
completer()
def
count()
def
currentData()
def
currentIndex()
def
currentText()
def
findData()
def
findText()
def
hasFrame()
def
iconSize()
def
insertItem()
def
insertItems()
def
insertPolicy()
def
isEditable()
def
itemData()
def
itemDelegate()
def
itemIcon()
def
itemText()
def
lineEdit()
def
maxCount()
def
model()
def
modelColumn()
def
removeItem()
def
rootModelIndex()
def
setCompleter()
def
setEditable()
def
setFrame()
def
setIconSize()
def
setItemData()
def
setItemIcon()
def
setItemText()
def
setLineEdit()
def
setMaxCount()
def
setModelColumn()
def
setValidator()
def
setView()
def
validator()
def
view()
Virtual methods¶
def
hidePopup()
def
setModel()
def
showPopup()
Slots¶
def
clear()
def
clearEditText()
def
setCurrentText()
def
setEditText()
Signals¶
def
activated()
def
highlighted()
def
textActivated()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description¶
Collapsed QCombobox
Expanded QCombobox
Display Features¶
A
QComboBox
is a compact way to present a list of options to the user.A combobox is a selection widget that shows the current item, and pops up a list of selectable items when clicked. Comboboxes can contain pixmaps as well as strings if the
insertItem()
andsetItemText()
functions are suitably overloaded.Editing Features¶
A combobox may be editable, allowing the user to modify each item in the list. For editable comboboxes, the function
clearEditText()
is provided, to clear the displayed string without changing the combobox’s contents.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 usingsetInsertPolicy()
.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()
andinsertItems()
for example. Items can be changed withsetItemText()
. An item can be removed withremoveItem()
and all items can be removed withclear()
. The text of the current item is returned bycurrentText()
, and the text of a numbered item is returned with text(). The current item can be set withsetCurrentIndex()
. The number of items in the combobox is returned bycount()
; the maximum number of items can be set withsetMaxCount()
. You can allow editing usingsetEditable()
. For editable comboboxes you can set auto-completion usingsetCompleter()
and whether or not the user can add duplicates is set withsetDuplicatesEnabled()
.Signals¶
There are three signals emitted if the current item of a combobox changes:
currentIndexChanged()
,currentTextChanged()
, andactivated()
.currentIndexChanged()
andcurrentTextChanged()
are always emitted regardless if the change was done programmatically or by user interaction, whileactivated()
is only emitted when the change is caused by user interaction. Thehighlighted()
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 anint
argument. If the user selects or highlights a pixmap, only theint
signals are emitted. Whenever the text of an editable combobox is changed, theeditTextChanged()
signal is emitted.Model/View Framework¶
QComboBox
uses the model/view framework for its popup list and to store its items. By default a QStandardItemModel stores the items and aQListView
subclass displays the popuplist. You can access the model and view directly (withmodel()
andview()
), butQComboBox
also provides functions to set and get item data, for example,setItemData()
anditemText()
. You can also set a new model and view (withsetModel()
andsetView()
). For the text and icon in the combobox label, the data in the model that has the Qt::DisplayRole and Qt::DecorationRole is used.Note
You cannot alter the
SelectionMode
of theview()
, for example, by usingsetSelectionMode()
.See also
- class 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.
- class 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.
Note
Properties can be used directly when
from __feature__ import true_property
is used or via accessor functions otherwise.- property countᅟ: 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.
- Access functions:
- property currentDataᅟ: object¶
This property holds the data for the current item.
By default, for an empty combo box or a combo box in which no current item is set, this property contains an invalid QVariant.
- Access functions:
- property currentIndexᅟ: 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.
- Access functions:
- property currentTextᅟ: 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 setCurrentText() 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()
- Access functions:
- property duplicatesEnabledᅟ: 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).- Access functions:
- property 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
- Access functions:
- property frameᅟ: 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.
- Access functions:
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.
- Access functions:
- property insertPolicyᅟ: QComboBox.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
- Access functions:
- property maxCountᅟ: 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).
- Access functions:
- property maxVisibleItemsᅟ: 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.- Access functions:
- property minimumContentsLengthᅟ: 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()
andsizeHint()
take it into account.See also
- Access functions:
- property modelColumnᅟ: 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.
Note
In an editable combobox, the visible column will also become the
completion column
.- Access functions:
- property 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 callsetCurrentIndex
(-1) programmatically if you want to show the placeholder text. Set an empty placeholder text to reset the setting.When the
QComboBox
is editable, usesetPlaceholderText()
instead.- Access functions:
- property sizeAdjustPolicyᅟ: QComboBox.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
- Access functions:
Constructs a combobox with the given
parent
, using the default model QStandardItemModel.- activated(index)¶
- Parameters:
index – int
This signal is sent when the user chooses an item in the combobox. The item’s
index
is passed. Note that this signal is sent even when the choice is not changed. If you need to know when the choice actually changes, use signalcurrentIndexChanged()
orcurrentTextChanged()
.- addItem(text[, userData=None])¶
- Parameters:
text – str
userData – object
Adds an item to the combobox with the given
text
, and containing the specifieduserData
(stored in the Qt::UserRole). The item is appended to the list of existing items.- addItem(icon, text[, userData=None])
- Parameters:
icon –
QIcon
text – str
userData – object
Adds an item to the combobox with the given
icon
andtext
, and containing the specifieduserData
(stored in the Qt::UserRole). The item is appended to the list of existing items.- 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.- 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.
- clearEditText()¶
Clears the contents of the line edit used for editing in the combobox.
- completer()¶
- Return type:
Returns the completer that is used to auto complete text input for the combobox.
See also
setCompleter()
editable
- count()¶
- Return type:
int
Getter of property
countᅟ
.- currentData([role=Qt.UserRole])¶
- Parameters:
role – int
- Return type:
object
- currentIndex()¶
- Return type:
int
See also
Getter of property
currentIndexᅟ
.- currentIndexChanged(index)¶
- Parameters:
index – int
This signal is sent whenever the
currentIndex
in the combobox changes either through user interaction or programmatically. The item’sindex
is passed or -1 if the combobox becomes empty or thecurrentIndex
was reset.Notification signal of property
currentIndexᅟ
.- currentText()¶
- Return type:
str
See also
Getter of property
currentTextᅟ
.- currentTextChanged(arg__1)¶
- Parameters:
arg__1 – str
This signal is emitted whenever
currentText
changes. The new value is passed astext
.Note
It is not emitted, if
currentText
remains the same, even ifcurrentIndex
changes.Notification signal of property
currentTextᅟ
.- duplicatesEnabled()¶
- Return type:
bool
See also
Getter of property
duplicatesEnabledᅟ
.- editTextChanged(arg__1)¶
- Parameters:
arg__1 – str
This signal is emitted when the text in the combobox’s line edit widget is changed. The new text is specified by
text
.- findData(data[, role=Qt.UserRole[, flags=static_cast<Qt.MatchFlags>(Qt.MatchExactly|Qt.MatchCaseSensitive)]])¶
- Parameters:
data – object
role – int
flags – Combination of
MatchFlag
- Return type:
int
Returns the index of the item containing the given
data
for the givenrole
; otherwise returns -1.The
flags
specify how the items in the combobox are searched.- findText(text[, flags=static_cast<Qt.MatchFlags>(Qt.MatchExactly|Qt.MatchCaseSensitive)])¶
- Parameters:
text – str
flags – Combination of
MatchFlag
- 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.- hasFrame()¶
- Return type:
bool
Getter of property
frameᅟ
.- 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 hidePopup() 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
- highlighted(index)¶
- Parameters:
index – int
This signal is sent when an item in the combobox popup list is highlighted by the user. The item’s
index
is passed.- iconSize()¶
- Return type:
See also
Getter of property
iconSizeᅟ
.- initStyleOption(option)¶
- Parameters:
option –
QStyleOptionComboBox
Initialize
option
with the values from thisQComboBox
. This method is useful for subclasses when they need aQStyleOptionComboBox
, but don’t want to fill in all the information themselves.See also
- inputMethodQuery(query, argument)¶
- Parameters:
query –
InputMethodQuery
argument – object
- Return type:
object
- insertItem(index, text[, userData=None])¶
- Parameters:
index – int
text – str
userData – object
Inserts the
text
anduserData
(stored in the Qt::UserRole) into the combobox at the givenindex
.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(index, icon, text[, userData=None])
- Parameters:
index – int
icon –
QIcon
text – str
userData – object
Inserts the
icon
,text
anduserData
(stored in the Qt::UserRole) into the combobox at the givenindex
.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(index, texts)¶
- Parameters:
index – int
texts – list of strings
Inserts the strings from the
list
into the combobox as separate items, starting at theindex
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
- insertPolicy()¶
- Return type:
See also
Getter of property
insertPolicyᅟ
.- 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
- isEditable()¶
- Return type:
bool
Getter of property
editableᅟ
.- itemData(index[, role=Qt.UserRole])¶
- Parameters:
index – int
role – int
- Return type:
object
Returns the data for the given
role
in the givenindex
in the combobox, or an invalid QVariant if there is no data for this role.See also
- itemDelegate()¶
- Return type:
Returns the item delegate used by the popup list view.
See also
Returns the icon for the given
index
in the combobox.See also
- itemText(index)¶
- Parameters:
index – int
- Return type:
str
Returns the text for the given
index
in the combobox.See also
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
- maxCount()¶
- Return type:
int
See also
Getter of property
maxCountᅟ
.- maxVisibleItems()¶
- Return type:
int
See also
Getter of property
maxVisibleItemsᅟ
.- minimumContentsLength()¶
- Return type:
int
See also
Getter of property
minimumContentsLengthᅟ
.- model()¶
- Return type:
Returns the model used by the combobox.
See also
- modelColumn()¶
- Return type:
int
See also
Getter of property
modelColumnᅟ
.- placeholderText()¶
- Return type:
str
See also
Getter of property
placeholderTextᅟ
.- 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.- rootModelIndex()¶
- Return type:
Returns the root model item index for the items in the combobox.
See also
- setCompleter(c)¶
- Parameters:
c –
QCompleter
Sets the
completer
to use instead of the current completer. Ifcompleter
isNone
, 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 becomesfalse
, or when the line edit is replaced by a call tosetLineEdit()
. Setting a completer on aQComboBox
that is not editable will be ignored.See also
- setCurrentIndex(index)¶
- Parameters:
index – int
See also
Setter of property
currentIndexᅟ
.- setCurrentText(text)¶
- Parameters:
text – str
See also
Setter of property
currentTextᅟ
.- setDuplicatesEnabled(enable)¶
- Parameters:
enable – bool
See also
Setter of property
duplicatesEnabledᅟ
.- setEditText(text)¶
- Parameters:
text – str
Sets the
text
in the combobox’s text edit.- setEditable(editable)¶
- Parameters:
editable – bool
See also
Setter of property
editableᅟ
.- setFrame(arg__1)¶
- Parameters:
arg__1 – bool
See also
Setter of property
frameᅟ
.Setter of property
iconSizeᅟ
.- setInsertPolicy(policy)¶
- Parameters:
policy –
InsertPolicy
See also
Setter of property
insertPolicyᅟ
.- setItemData(index, value[, role=Qt.UserRole])¶
- Parameters:
index – int
value – object
role – int
Sets the data
role
for the item on the givenindex
in the combobox to the specifiedvalue
.See also
- setItemDelegate(delegate)¶
- Parameters:
delegate –
QAbstractItemDelegate
Sets the item
delegate
for the popup list view. The combobox takes ownership of the delegate.Any existing delegate will be removed, but not deleted.
QComboBox
does not take ownership ofdelegate
.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
Sets the
icon
for the item on the givenindex
in the combobox.See also
- setItemText(index, text)¶
- Parameters:
index – int
text – str
Sets the
text
for the item on the givenindex
in the combobox.See also
Sets the line
edit
to use instead of the current line edit widget.The combo box takes ownership of the line edit.
Note
Since the combobox’s line edit owns the
QCompleter
, any previous call tosetCompleter()
will no longer have any effect.See also
- setMaxCount(max)¶
- Parameters:
max – int
See also
Setter of property
maxCountᅟ
.- setMaxVisibleItems(maxItems)¶
- Parameters:
maxItems – int
See also
Setter of property
maxVisibleItemsᅟ
.- setMinimumContentsLength(characters)¶
- Parameters:
characters – int
See also
Setter of property
minimumContentsLengthᅟ
.- setModel(model)¶
- Parameters:
model –
QAbstractItemModel
Sets the model to be
model
.model
must not beNone
. If you want to clear the contents of a model, callclear()
.Note
If the combobox is editable, then the
model
will also be set on the completer of the line edit.See also
- setModelColumn(visibleColumn)¶
- Parameters:
visibleColumn – int
See also
Setter of property
modelColumnᅟ
.- setPlaceholderText(placeholderText)¶
- Parameters:
placeholderText – str
See also
Setter of property
placeholderTextᅟ
.- setRootModelIndex(index)¶
- Parameters:
index –
QModelIndex
Sets the root model item
index
for the items in the combobox.See also
- setSizeAdjustPolicy(policy)¶
- Parameters:
policy –
SizeAdjustPolicy
See also
Setter of property
sizeAdjustPolicyᅟ
.- setValidator(v)¶
- Parameters:
v –
QValidator
Sets the
validator
to use instead of the current validator.- setView(itemView)¶
- Parameters:
itemView –
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
orQTreeWidget
), make sure to callsetModel()
on the combobox with the convenience widgets model before calling this function.See also
- 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
- sizeAdjustPolicy()¶
- Return type:
See also
Getter of property
sizeAdjustPolicyᅟ
.- textActivated(arg__1)¶
- Parameters:
arg__1 – str
This signal is sent when the user chooses an item in the combobox. The item’s
text
is passed. Note that this signal is sent even when the choice is not changed. If you need to know when the choice actually changes, use signalcurrentIndexChanged()
orcurrentTextChanged()
.- textHighlighted(arg__1)¶
- Parameters:
arg__1 – str
This signal is sent when an item in the combobox popup list is highlighted by the user. The item’s
text
is passed.- validator()¶
- Return type:
Returns the validator that is used to constrain text input for the combobox.
See also
setValidator()
editable
- view()¶
- Return type:
Returns the list view used for the combobox popup.
See also