QComboBox Class
QComboBox 控件将按钮与下拉列表结合在一起。更多内容...
| 标题: | #include <QComboBox> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QWidget |
| 被继承者: |
公共类型
| enum | InsertPolicy { NoInsert, InsertAtTop, InsertAtCurrent, InsertAtBottom, InsertAfterCurrent, …, InsertAlphabetically } |
(since 6.9) enum class | LabelDrawingMode { UseStyle, UseDelegate } |
| enum | SizeAdjustPolicy { AdjustToContents, AdjustToContentsOnFirstShow, AdjustToMinimumContentsLengthWithIcon } |
属性
|
|
公共函数
| 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 |
重新实现的公共函数
| virtual bool | event(QEvent *event) override |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
公共插槽
| void | clear() |
| void | clearEditText() |
| void | setCurrentIndex(int index) |
| void | setCurrentText(const QString &text) |
| void | setEditText(const QString &text) |
信号
| 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) |
受保护函数
| virtual void | initStyleOption(QStyleOptionComboBox *option) const |
重新实现的受保护函数
| 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 |
详细说明
折叠的 QCombobox |
展开的 QCombobox |
显示特性
QComboBox 是一种向用户展示选项列表的紧凑方式。
下拉列表是一种选择控件,它会显示当前项目,并在点击时弹出可选项目列表。如果适当重载了insertItem()和setItemText()函数,下拉列表不仅可以包含字符串,还可以包含位图。
编辑功能
下拉列表可能支持编辑,允许用户修改列表中的每个项目。对于可编辑的下拉列表,提供了clearEditText() 函数,用于清除显示的字符串而不改变下拉列表的实际内容。
当用户在可编辑下拉列表中输入新字符串时,控件可能插入该字符串,也可能不插入,且可将其插入多个位置。默认策略为 `InsertAtBottom `,但您可以通过 `setInsertPolicy()` 进行更改。
可以使用QValidator 对可编辑下拉列表的输入进行限制;请参阅setValidator()。默认情况下,任何输入都会被接受。
可通过插入函数(例如insertItem() 和insertItems())为下拉列表填充数据。 可通过setItemText() 修改项目。可通过removeItem() 删除单个项目,通过clear() 删除所有项目。当前项目的文本由currentText() 返回,带编号项目的文本由 text() 返回。可通过setCurrentIndex() 设置当前项目。 下拉列表中的项目数量可通过count() 获取;最大项目数量可通过setMaxCount() 设置。可通过setEditable() 启用编辑功能。对于可编辑的下拉列表,可通过setCompleter() 设置自动完成功能,并可通过setDuplicatesEnabled() 设置是否允许用户添加重复项。
信号
当下拉列表的当前选项发生变化时,会触发三个信号:currentIndexChanged()、currentTextChanged() 和activated()。无论更改是通过编程方式还是用户交互完成的,currentIndexChanged() 和currentTextChanged() 都会被触发,而activated() 仅在更改由用户交互引起时才会被触发。 当用户在下拉列表的弹出列表中选中某项时,会发出highlighted() 信号。 这三个信号各有两个版本,一个带有QString 参数,另一个带有int 参数。如果用户选择或高亮显示了一张位图,则仅会发出int 信号。每当可编辑下拉列表的文本发生更改时,都会发出editTextChanged()信号。
模型/视图框架
QComboBox 使用模型/视图框架来管理其弹出列表并存储项目。默认情况下,QStandardItemModel 负责存储项目,而QListView 的子类则负责显示弹出列表。 您可以直接访问模型和视图(通过model() 和view()),但 QComboBox 还提供了用于设置和获取项目数据的函数,例如setItemData() 和itemText()。 您还可以设置新的模型和视图(使用setModel() 和setView())。对于下拉框标签中的文本和图标,将使用模型中Qt::DisplayRole 和Qt::DecorationRole 对应的数据。
注意:您 无法更改view()的SelectionMode ,例如通过使用setSelectionMode()。
另请参阅 QLineEdit 、QSpinBox 、QRadioButton 和QButtonGroup 。
成员类型文档
enum QComboBox::InsertPolicy
此枚举指定当用户输入新字符串时,QComboBox 应执行什么操作。
| 常量 | 值 | 描述 |
|---|---|---|
QComboBox::NoInsert | 0 | 该字符串不会被插入到组合框中。 |
QComboBox::InsertAtTop | 1 | 该字符串将作为组合框中的第一个项目插入。 |
QComboBox::InsertAtCurrent | 2 | 当前项目将被该字符串替换。 |
QComboBox::InsertAtBottom | 3 | 该字符串将插入到组合框的最后一个项目之后。 |
QComboBox::InsertAfterCurrent | 4 | 该字符串将插入到组合框中当前项之后。 |
QComboBox::InsertBeforeCurrent | 5 | 该字符串将插入到组合框中当前项目的前面。 |
QComboBox::InsertAlphabetically | 6 | 该字符串将按字母顺序插入组合框中。 |
[since 6.9] enum class QComboBox::LabelDrawingMode
此枚举指定下拉列表如何绘制其标签。
| 常量 | 值 | 描述 |
|---|---|---|
QComboBox::LabelDrawingMode::UseStyle | 0 | 下拉列表框使用style 来绘制其标签。 |
QComboBox::LabelDrawingMode::UseDelegate | 1 | 下拉列表使用item delegate 来绘制标签。使用此模式时,请设置一个合适的项委托。 |
该枚举在 Qt 6.9 中引入。
另请参阅 ` labelDrawingMode `及“Books”示例。
enum QComboBox::SizeAdjustPolicy
此枚举指定了当添加新内容或内容发生变化时,QComboBox 的大小提示应如何调整。
| 常量 | 值 | 描述 |
|---|---|---|
QComboBox::AdjustToContents | 0 | 下拉列表框将始终根据内容进行调整 |
QComboBox::AdjustToContentsOnFirstShow | 1 | 下拉列表将在首次显示时根据其内容进行调整。 |
QComboBox::AdjustToMinimumContentsLengthWithIcon | 2 | 下拉列表将调整为minimumContentsLength ,并预留图标空间。出于性能考虑,请在大型模型上使用此策略。 |
属性文档
[read-only] count : int
该属性存储下拉列表中的项目数量。
默认情况下,对于空的下拉列表框,该属性的值为 0。
访问函数:
| int | count() const |
[read-only] currentData : QVariant
该属性存储当前项目的数据
默认情况下,对于空的下拉列表框或未设置当前项的下拉列表框,该属性包含一个无效的QVariant 。
Access 函数:
| QVariant | currentData(int role = Qt::UserRole) const |
currentIndex : int
该属性保存了组合框中当前项的索引。
在插入或删除项目时,当前索引可能会发生变化。
默认情况下,对于空的下拉列表框或未设置当前项的下拉列表框,该属性的值为 -1。
访问函数:
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
通知信号:
| void | currentIndexChanged(int index) |
currentText : QString
该属性存储当前文本
如果下拉列表框可编辑,则当前文本即为单行编辑框中显示的值。否则,它为当前项的值;若下拉列表框为空或未设置当前项,则为空字符串。
如果下拉列表可编辑,setCurrentText() 设置器仅调用setEditText()。否则,如果列表中存在匹配的文本,则将currentIndex 设置为对应的索引。
访问函数:
| QString | currentText() const |
| void | setCurrentText(const QString &text) |
通知器信号:
| void | currentTextChanged(const QString &text) |
另请参阅 editable 和setEditText()。
duplicatesEnabled : bool
该属性控制用户是否可以在下拉列表中输入重复的项目。
请注意,始终可以通过编程方式将重复项插入组合框。
默认情况下,此属性的值为false (不允许重复项)。
访问函数:
| bool | duplicatesEnabled() const |
| void | setDuplicatesEnabled(bool enable) |
editable : bool
该属性用于确定用户是否可以编辑下拉列表框。
默认情况下,该属性为false 。编辑效果取决于插入策略。
注意:当禁用 editable 状态时,验证器和补全器将被移除。
访问函数:
| bool | isEditable() const |
| void | setEditable(bool editable) |
另请参阅 InsertPolicy 。
frame : bool
该属性控制下拉列表框是否带边框显示。
如果启用(默认值),下拉列表框会在框架内显示;否则,下拉列表框将不显示任何框架。
访问函数:
| bool | hasFrame() const |
| void | setFrame(bool) |
iconSize : QSize
该属性用于指定组合框中显示的图标大小。
除非显式设置,否则该属性将返回当前样式的默认值。此大小是图标的最大尺寸;小于该尺寸的图标不会被放大。
访问函数:
| QSize | iconSize() const |
| void | setIconSize(const QSize &size) |
insertPolicy : InsertPolicy
此属性存储用于确定用户插入的项目应出现在下拉列表中的哪个位置的策略。
默认值为InsertAtBottom ,表示新项目将显示在项目列表的末尾。
访问函数:
| QComboBox::InsertPolicy | insertPolicy() const |
| void | setInsertPolicy(QComboBox::InsertPolicy policy) |
另请参阅 InsertPolicy 。
[since 6.9] labelDrawingMode : LabelDrawingMode
此属性用于指定下拉列表绘制其标签时所使用的模式。
默认值为UseStyle 。将此属性更改为UseDelegate 时,请务必同时设置一个合适的item delegate 。默认委托取决于样式,可能不适合绘制标签。
该枚举在 Qt 6.9 中引入。
访问函数:
| QComboBox::LabelDrawingMode | labelDrawingMode() const |
| void | setLabelDrawingMode(QComboBox::LabelDrawingMode labelDrawing) |
另请参阅 Books 示例。
maxCount : int
此属性用于指定下拉列表中允许的最大项目数量。
注意:若 将最大项数设置为小于组合框中当前的项数,则多余的项将被截断。如果已在组合框上设置了外部模型,此规则同样适用。
默认情况下,此属性的值取自可用的最大有符号整数(通常为 2147483647)。
访问函数:
| int | maxCount() const |
| void | setMaxCount(int max) |
maxVisibleItems : int
该属性指定组合框在屏幕上允许显示的最大项目数,单位为项目
默认情况下,该属性的值为 10。
注意: 对于在QStyle::SH_ComboBox_Popup 返回true的样式(如Mac样式或Gtk+样式)中的不可编辑下拉列表,该 属性将被忽略。
访问函数:
| int | maxVisibleItems() const |
| void | setMaxVisibleItems(int maxItems) |
minimumContentsLength : int
此属性用于指定下拉列表中应显示的最小字符数。
默认值为 0。
如果将此属性设置为正值,则minimumSizeHint() 和sizeHint() 方法会将其考虑在内。
访问函数:
| int | minimumContentsLength() const |
| void | setMinimumContentsLength(int characters) |
另请参阅 sizeAdjustPolicy 。
modelColumn : int
该属性用于指定模型中可见的列。
如果在填充下拉列表之前设置此属性,则弹出视图不会受到影响,并将显示第一列(使用该属性的默认值)。
默认情况下,该属性的值为 0。
注意:在 可编辑的下拉列表框中 ,可见列也将成为completion column 。
访问函数:
| int | modelColumn() const |
| void | setModelColumn(int visibleColumn) |
placeholderText : QString
设置当未设置有效索引时显示的placeholderText 文本。
当设置了无效索引时,将显示该placeholderText 。在下拉列表中无法访问该文本。如果在添加项目之前调用此函数,将显示占位符文本;否则,若需显示占位符文本,则必须通过编程方式调用setCurrentIndex(-1)。设置为空的占位符文本可重置该设置。
当QComboBox 可编辑时,请改用QLineEdit::setPlaceholderText()。
访问函数:
| QString | placeholderText() const |
| void | setPlaceholderText(const QString &placeholderText) |
sizeAdjustPolicy : SizeAdjustPolicy
该属性存储了描述组合框在内容发生变化时其大小如何变化的策略。
默认值为AdjustToContentsOnFirstShow 。
访问函数:
| QComboBox::SizeAdjustPolicy | sizeAdjustPolicy() const |
| void | setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy) |
另请参阅 SizeAdjustPolicy 。
成员函数文档
[explicit] QComboBox::QComboBox(QWidget *parent = nullptr)
使用默认模型QStandardItemModel ,根据给定的parent 创建一个下拉列表框。
[virtual noexcept] QComboBox::~QComboBox()
销毁该下拉列表框。
[signal] void QComboBox::activated(int index)
当用户在下拉列表中选择一个项目时,会发送此信号。该项目的index 会被传递进来。请注意,即使选择内容未发生变化,此信号仍会被发送。若需检测选择内容实际发生变化的时刻,请使用currentIndexChanged()或currentTextChanged()信号。
void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant())
向下拉列表中添加一个项目,其text 为给定值,并包含指定的userData (存储在Qt::UserRole 中)。该项目将追加到现有项目列表的末尾。
void QComboBox::addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
向下拉列表中添加一个项目,该项目具有给定的icon 和text ,并包含指定的userData (存储在Qt::UserRole 中)。该项目将追加到现有项目列表的末尾。
void QComboBox::addItems(const QStringList &texts)
将给定texts 中的每个字符串添加到下拉列表中。每个项目将依次追加到现有项目列表的末尾。
[override virtual protected] void QComboBox::changeEvent(QEvent *e)
重写了:QWidget::changeEvent(QEvent *event)。
[slot] void QComboBox::clear()
清空下拉列表,移除所有项目。
注意:如果已在组合框上设置了外部模型,调用此函数时该模型仍会被清空。
[slot] void QComboBox::clearEditText()
清除用于编辑下拉列表的行编辑框中的内容。
QCompleter *QComboBox::completer() const
返回用于为下拉列表框的文本输入提供自动完成功能的自动完成组件。
另请参阅 setCompleter() 和editable 。
[override virtual protected] void QComboBox::contextMenuEvent(QContextMenuEvent *e)
重写了:QWidget::contextMenuEvent(QContextMenuEvent *event)。
[signal] void QComboBox::currentIndexChanged(int index)
每当组合框中的currentIndex 因用户交互或程序操作而发生变化时,都会发送此信号。该项的index 会被传递;如果组合框变为空状态,或者currentIndex 被重置,则传递-1。
注意: 这是属性currentIndex 的Notifier 信号。
[signal] void QComboBox::currentTextChanged(const QString &text)
每当currentText 发生变化时,都会触发此信号。新值将作为text 传递。
注意: 如果currentText 保持不变,即使currentIndex 发生了变化,该信号 也不会被触发。
注意: 这是属性currentText 的通知器 信号。
[signal] void QComboBox::editTextChanged(const QString &text)
当下拉列表中的行编辑控件中的文本发生变化时,会触发此信号。新文本由text 指定。
[override virtual] bool QComboBox::event(QEvent *event)
重写了: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
返回包含给定data 的项的索引,该项属于给定的role ;否则返回-1。
flags 指定了组合框中项目的搜索方式。
int QComboBox::findText(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const
返回包含给定text 的项的索引;否则返回-1。
flags 指定了如何搜索组合框中的项目。
[override virtual protected] void QComboBox::focusInEvent(QFocusEvent *e)
重写了:QWidget::focusInEvent(QFocusEvent *event)。
[override virtual protected] void QComboBox::focusOutEvent(QFocusEvent *e)
重写了:QWidget::focusOutEvent(QFocusEvent *event)。
[override virtual protected] void QComboBox::hideEvent(QHideEvent *e)
重写了:QWidget::hideEvent(QHideEvent *event)。
[virtual] void QComboBox::hidePopup()
如果下拉列表当前可见,则隐藏其中的项目列表并重置内部状态,这样,如果在重写的showPopup()方法中显示了自定义弹出窗口, 那么你还需要重写 hidePopup() 函数,以隐藏自定义弹出窗口,并在自定义弹出窗口小部件被隐藏时,调用基类的实现来重置内部状态。
另请参阅 showPopup()。
[signal] void QComboBox::highlighted(int index)
当用户选中下拉列表中的某个项目时,会触发此信号。此时会传递该项目的index 属性。
[virtual protected] void QComboBox::initStyleOption(QStyleOptionComboBox *option) const
使用QComboBox 中的值初始化option 。当子类需要QStyleOptionComboBox 时,但又不想自己填写所有信息,此方法非常有用。
另请参阅 QStyleOption::initFrom()。
[override virtual protected] void QComboBox::inputMethodEvent(QInputMethodEvent *e)
重写了:QWidget::inputMethodEvent(QInputMethodEvent *event)。
[override virtual] QVariant QComboBox::inputMethodQuery(Qt::InputMethodQuery query) const
重写了:QWidget::inputMethodQuery (Qt::InputMethodQuery query)const。
void QComboBox::insertItem(int index, const QString &text, const QVariant &userData = QVariant())
将text 和userData (存储在Qt::UserRole 中)插入到位于指定index 处的下拉列表中。
如果索引值等于或大于项目总数,则新项目将追加到现有项目列表的末尾。如果索引值为零或负数,则新项目将插入到现有项目列表的开头。
另请参阅 insertItems()。
void QComboBox::insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
将icon 、text 和userData (存储在Qt::UserRole 中)插入到位于指定index 处的下拉列表中。
如果索引值等于或大于项目总数,则将新项目追加到现有项目列表的末尾。如果索引值为零或负数,则将新项目插入到现有项目列表的开头。
另请参阅 insertItems()。
void QComboBox::insertItems(int index, const QStringList &list)
将list 中的字符串作为独立项目插入到组合框中,从指定的index 开始。
如果索引值等于或大于项目总数,则新项目将追加到现有项目列表的末尾。如果索引值为零或负数,则新项目将插入到现有项目列表的开头。
另请参阅 insertItem()。
void QComboBox::insertSeparator(int index)
将一个分隔项插入到组合框中,位置为给定的index 。
如果索引值等于或大于项目总数,则新项目将追加到现有项目列表的末尾。如果索引值为零或负数,则新项目将插入到现有项目列表的开头。
另请参阅 insertItem()。
QVariant QComboBox::itemData(int index, int role = Qt::UserRole) const
返回下拉列表中给定role 在给定index 中的数据,如果该角色没有数据,则返回无效的QVariant 。
另请参阅 setItemData()。
QAbstractItemDelegate *QComboBox::itemDelegate() const
返回弹出式列表视图所使用的项目委托。
另请参阅 setItemDelegate()。
QIcon QComboBox::itemIcon(int index) const
返回下拉列表中给定index 对应的图标。
另请参阅 setItemIcon()。
QString QComboBox::itemText(int index) const
返回下拉列表中给定index 对应的文本。
另请参阅 setItemText()。
[override virtual protected] void QComboBox::keyPressEvent(QKeyEvent *e)
重写了:QWidget::keyPressEvent(QKeyEvent *event)。
[override virtual protected] void QComboBox::keyReleaseEvent(QKeyEvent *e)
重写了:QWidget::keyReleaseEvent(QKeyEvent *event)。
QLineEdit *QComboBox::lineEdit() const
返回用于编辑组合框中项目的行编辑控件,如果不存在行编辑控件,则返回nullptr 。
只有可编辑的下拉列表才具有行编辑控件。
另请参阅 setLineEdit()。
[override virtual] QSize QComboBox::minimumSizeHint() const
重新实现了属性QWidget::minimumSizeHint 的访问函数。
QAbstractItemModel *QComboBox::model() const
返回下拉列表所使用的模型。
另请参阅 setModel()。
[override virtual protected] void QComboBox::mousePressEvent(QMouseEvent *e)
重写了:QWidget::mousePressEvent(QMouseEvent *event)。
[override virtual protected] void QComboBox::mouseReleaseEvent(QMouseEvent *e)
重写了:QWidget::mouseReleaseEvent(QMouseEvent *event)。
[override virtual protected] void QComboBox::paintEvent(QPaintEvent *e)
重写了:QWidget::paintEvent(QPaintEvent *event)。
void QComboBox::removeItem(int index)
从下拉列表中移除位于指定index 处的项目。如果该索引被移除,则会更新当前索引。
如果index 超出范围,则此函数不执行任何操作。
[override virtual protected] void QComboBox::resizeEvent(QResizeEvent *e)
重写了:QWidget::resizeEvent(QResizeEvent *event)。
QModelIndex QComboBox::rootModelIndex() const
返回组合框中各项的根模型项索引。
另请参阅 setRootModelIndex()。
void QComboBox::setCompleter(QCompleter *completer)
设置要使用的completer ,以替换当前的自动补全器。如果completer 的值为nullptr ,则自动补全功能将被禁用。
默认情况下,对于可编辑的下拉列表框,系统会自动创建一个支持不区分大小写内联补全的QCompleter 。
注意: 当editable 属性变为false 时,或者通过调用setLineEdit() 替换行编辑控件时,补全器 将被移除。对不可编辑的QComboBox 设置补全器将被忽略。
另请参阅 completer()。
[slot] void QComboBox::setEditText(const QString &text)
将text 设置为组合框的文本编辑框中的内容。
void QComboBox::setItemData(int index, const QVariant &value, int role = Qt::UserRole)
将组合框中给定index 上的项的数据role 设置为指定的value 。
另请参阅 itemData()。
void QComboBox::setItemDelegate(QAbstractItemDelegate *delegate)
为弹出式列表视图设置项delegate 。下拉列表将接管该委托。
任何现有的委托对象都将被移除,但不会被删除。QComboBox 不会接管delegate 的所有权。
警告:不应在 组合框、控件映射器或视图之间共享同一个委托实例。这样做可能会导致编辑行为不正确或反直觉,因为连接到给定委托的每个视图都可能收到closeEditor() 信号,并试图访问、修改或关闭一个已经关闭的编辑器。
另请参阅 itemDelegate()。
void QComboBox::setItemIcon(int index, const QIcon &icon)
将下拉列表中指定位置(index )的项的icon 属性设置为指定值。
另请参阅 itemIcon()。
void QComboBox::setItemText(int index, const QString &text)
将下拉列表中指定index 上的项的text 属性设置为指定值。
另请参阅 itemText()。
void QComboBox::setLineEdit(QLineEdit *edit)
设置要使用的行编辑控件(edit ),以替代当前的行编辑控件。
下拉列表将接管该行编辑控件的所有权。
注意:由于 下拉列表的行编辑控件拥有QCompleter ,因此之前对setCompleter()的任何调用都将不再生效。
另请参阅 lineEdit()。
[virtual] void QComboBox::setModel(QAbstractItemModel *model)
将模型设置为model 。model 不能是nullptr 。若要清空模型的内容,请调用clear()。
注意:如果 下拉列表框可编辑,则行编辑框的补全器也将设置为model 。
另请参阅 model()、clear() 和setCompleter()。
void QComboBox::setRootModelIndex(const QModelIndex &index)
为组合框中的项目设置根模型项index 。
另请参阅 rootModelIndex()。
void QComboBox::setValidator(const QValidator *validator)
设置要使用的validator ,以替换当前的验证器。
注意: 当editable 属性变为false 时,该 验证器将被移除。
另请参阅 validator()。
void QComboBox::setView(QAbstractItemView *itemView)
将下拉列表弹出窗口中使用的视图设置为给定的itemView 。下拉列表将拥有该视图的所有权。
注意:若要使用便捷视图(如QListWidget 、QTableWidget 或QTreeWidget ),请务必在调用此函数之前,对组合框调用setModel() 并传入便捷控件模型。
另请参阅 view()。
[override virtual protected] void QComboBox::showEvent(QShowEvent *e)
重写了:QWidget::showEvent(QShowEvent *event)。
[virtual] void QComboBox::showPopup()
显示下拉列表中的项目列表。如果列表为空,则不会显示任何项目。
如果您重写此函数以显示自定义弹出窗口,请确保调用hidePopup()来重置内部状态。
另请参阅 hidePopup()。
[override virtual] QSize QComboBox::sizeHint() const
重新实现了属性QWidget::sizeHint 的访问函数。
此实现会缓存大小提示,以避免在内容动态变化时重新调整大小。若要使缓存值失效,请修改sizeAdjustPolicy 。
[signal] void QComboBox::textActivated(const QString &text)
当用户在下拉列表中选择一个项目时,会发送此信号。该项目的text 会被传递进来。请注意,即使选择内容未发生变化,该信号仍会发送。若需知道选择内容何时实际发生变化,请使用currentIndexChanged()或currentTextChanged()信号。
[signal] void QComboBox::textHighlighted(const QString &text)
当用户选中下拉列表中的某个项目时,会触发此信号。此时会传递该项目的text 属性。
const QValidator *QComboBox::validator() const
返回用于限制下拉列表文本输入的验证器。
另请参阅 setValidator() 和editable 。
QAbstractItemView *QComboBox::view() const
返回用于组合框弹出窗口的列表视图。
另请参阅 setView()。
[override virtual protected] void QComboBox::wheelEvent(QWheelEvent *e)
重写了: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.

