QComboBox Class
QComboBox widget 将按钮与下拉列表结合在一起。更多
标题 | #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 : const int
该属性用于保存组合框中的条目数。
默认情况下,对于空的组合框,该属性的值为 0。
访问功能:
int | count() const |
[read-only]
currentData : const QVariant
该属性保存当前项目的数据
默认情况下,对于空的组合框或未设置当前项目的组合框,该属性包含一个无效的QVariant 。
访问功能:
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) |
Notifier 信号:
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) |
另请参阅 书籍示例。
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 通过用户交互或编程方式发生变化时,就会发送该信号。如果组合框为空或currentIndex 已重置,则传递项目的index 或-1。
注: 属性currentIndex 的通知信号。
[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
返回给定role 中包含给定data 的项的索引;否则返回-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
返回组合框中给定index 中给定role 的数据,如果没有该角色的数据,则返回无效的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 ,以代替当前的行编辑 widget。
组合框拥有行编辑器的所有权。
注意: 由于组合框的行编辑拥有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).
© 2025 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.