python PyQt5 QComboBox类(下拉列表框、组合下拉框)

https://doc.qt.io/qtforpython/PySide2/QtWidgets/QComboBox.html?highlight=qcombobox#PySide2.QtWidgets.QComboBox

继承关系

在这里插入图片描述

细节描述

在这里插入图片描述
QComboBox提供了一种以占用最少屏幕空间的方式向用户显示选项列表的方法。

组合框是显示当前项目的选择小部件,并且可以弹出可选项目的列表。组合框可能是可编辑的,允许用户修改列表中的每个项目。

组合框可以包含像素图和字符串。适当地重载了insertItem()和setItemText()函数。对于可编辑的组合框,提供了函数clearEditText(),以清除显示的字符串而不更改组合框的内容。

如果组合框的当前项发生更改,则会发出两个信号,分别是currentIndexChanged()和Activated()。无论更改是通过编程方式还是通过用户交互进行,始终都会发出currentIndexChanged(),而仅当更改是由用户交互引起时才发出activate()。当用户突出显示组合框弹出列表中的一个项目时,将发出highlighted()信号。所有这三个信号都有两个版本,一个带有QString参数,另一个带有int参数。如果用户选择或突出显示一个像素图,则仅会发出int信号。只要更改了可编辑组合框的文本,就会发出editTextChanged()信号。

当用户在可编辑的组合框中输入新字符串时,该窗口小部件可能会插入也可能不会插入,并且可以将其插入多个位置。默认策略是InsertAtBottom,但是您可以使用setInsertPolicy()进行更改。

使用QValidator可以将输入限制为可编辑的组合框;参见setValidator()。默认情况下,接受任何输入。

例如,可以使用插入函数insertItem()和insertItems()来填充组合框。可以使用setItemText()更改项目。可以使用removeItem()删除项目,并可以使用clear()删除所有项目。当前项目的文本由currentText()返回,而编号项目的文本与text()返回。可以使用setCurrentIndex()设置当前项目。组合框中的项目数由count()返回;可以使用setMaxCount()设置最大项目数。您可以使用setEditable()进行编辑。对于可编辑的组合框,您可以使用setCompleter()设置自动完成功能,并且可以使用setDuplicatesEnabled()设置用户是否可以添加重复项。

QComboBox使用模型/视图框架为其弹出列表并存储其项目。默认情况下,QStandardItemModel存储项目,而QListView子类显示弹出列表。您可以直接访问模型和视图(使用model()和view()),但是QComboBox还提供用于设置和获取项目数据的函数(例如setItemData()和itemText())。您还可以设置新模型和视图(使用setModel()和setView())。对于组合框标签中的文本和图标,将使用模型中具有DisplayRole和DecorationRole的数据。请注意,您无法更改view()的SelectionMode,例如,使用setSelectionMode()。

See also

QLineEditQSpinBoxQRadioButtonQButtonGroupGUI Design Handbook: Combo Box, Drop-Down List Box
class QComboBox([parent=None])¶
param parent
QWidget

使用默认模型QStandardItemModel用给定的父级构造一个组合框。

示例

在这里插入图片描述

发布了1058 篇原创文章 · 获赞 86 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/Dontla/article/details/105597206
今日推荐