QComboBox Class

QComboBox widget 将按钮与下拉列表结合在一起。更多

标题 #include <QComboBox>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
继承: QWidget
继承于:

QFontComboBox

公共类型

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::DisplayRoleQt::DecorationRole 的模型中的数据。

注意: 不能更改view() 的SelectionMode ,例如,不能使用setSelectionMode()。

另请参阅 QLineEdit,QSpinBox,QRadioButton, 和QButtonGroup

成员类型文档

enum QComboBox::InsertPolicy

该枚举指定QComboBox 在用户输入新字符串时应执行的操作。

常数说明
QComboBox::NoInsert0字符串不会插入组合框。
QComboBox::InsertAtTop1字符串将作为第一项插入组合框。
QComboBox::InsertAtCurrent2当前项目将被字符串替换
QComboBox::InsertAtBottom3字符串将插入组合框的最后一项。
QComboBox::InsertAfterCurrent4字符串将插入组合框的当前项目之后。
QComboBox::InsertBeforeCurrent5字符串将插入组合框中的当前项目之前。
QComboBox::InsertAlphabetically6字符串按字母顺序插入组合框中。

[since 6.9] enum class QComboBox::LabelDrawingMode

该枚举指定组合框如何绘制标签。

常数说明
QComboBox::LabelDrawingMode::UseStyle0组合框使用style 绘制标签。
QComboBox::LabelDrawingMode::UseDelegate1组合框使用item delegate 绘制标签。使用该模式时,请设置合适的项目委托。

该枚举在 Qt 6.9 中引入。

另请参阅 labelDrawingModeBooks 示例

enum QComboBox::SizeAdjustPolicy

该枚举用于指定当添加新内容或内容发生变化时,QComboBox 的尺寸提示应如何调整。

常数说明
QComboBox::AdjustToContents0组合框将始终根据内容调整
QComboBox::AdjustToContentsOnFirstShow1组合框将在首次显示时根据内容调整。
QComboBox::AdjustToMinimumContentsLengthWithIcon2组合框将调整为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)

另请参见 editablesetEditText()。

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())

在组合框中添加一个项目,该项目包含给定的icontext ,并包含指定的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())

textuserData (存储在Qt::UserRole 中)插入给定index 的组合框中。

如果索引等于或大于项目总数,则将新项目添加到现有项目列表中。如果索引为零或负数,新项目将被预先添加到现有项目列表中。

另请参阅 insertItems() 。

void QComboBox::insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData = QVariant())

icontextuserData (存储在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 ,以代替当前的补全器。如果completernullptr ,自动补全将被禁用。

默认情况下,对于可编辑的组合框,会自动创建一个执行大小写不敏感的内联补全的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)

将模型设置为modelmodel 不得是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,QTableWidgetQTreeWidget ),请确保在调用此函数之前,在组合框上使用便捷部件模型调用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.