QComboBox 类

QComboBox 小部件是组合按钮和弹出列表。 更多...

头: #include <QComboBox>
qmake: QT += widgets
继承: QWidget
继承者:

QFontComboBox

公共类型

enum InsertPolicy { NoInsert, InsertAtTop, InsertAtCurrent, InsertAtBottom, InsertAfterCurrent, …, InsertAlphabetically }
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
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 setLineEdit (QLineEdit * edit )
void setMaxCount (int max )
void setMaxVisibleItems (int maxItems )
void setMinimumContentsLength (int characters )
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 )

保护函数

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 以占用最少屏幕空间数量的方式,向用户提供呈现选项列表的手段。

组合框是显示当前项的选择 Widget,且可以弹出可选择项的列表。组合框可能是可编辑的,使用户能够修改每列表项。

组合框可以包含像素图及字符串; insertItem () 和 setItemText () 函数适合被重载。对于可编辑组合框,函数 clearEditText () 的提供以清零显示字符串无需改变组合框内容。

会发射 3 个信号若组合框当前项改变, currentIndexChanged (), currentTextChanged () 和 activated (). currentIndexChanged () 和 currentTextChanged () 始终发射,无论改变是通过编程方式还是通过用户交互完成,而 activated () 才被发射当通过用户交互导致改变时。 highlighted () 信号被发射当用户突显组合框弹出列表项时。所有 3 信号均有 2 个版本,一个带有 QString 自变量和一个带有 int 自变量。若用户选择或突显像素图,仅 int 信号被发射。每当可编辑组合框文本改变时 editTextChanged () 信号发射。

当用户在可编辑组合框中录入新字符串时,可能插入或可能不插入 Widget,且可以将 Widget 插入在多个位置。默认策略是 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 ())。对于组合框标签文本和图标,模型数据拥有 Qt::DisplayRole and Qt::DecorationRole 在使用。注意:不可以更改 SelectionMode view (),如通过使用 setSelectionMode() .

另请参阅 QLineEdit , QSpinBox , QRadioButton , QButtonGroup ,和 GUI 设计手册:组合框、下拉列表框 .

成员类型文档编制

enum QComboBox:: InsertPolicy

此枚举指定什么是 QComboBox 应该做的,当用户键入新字符串时。

常量 描述
QComboBox::NoInsert 0 字符串不会插入组合框。
QComboBox::InsertAtTop 1 字符串将插入作为第一组合框项。
QComboBox::InsertAtCurrent 2 当前项将 replaced 通过字符串。
QComboBox::InsertAtBottom 3 将字符串插入在组合框最后项之后。
QComboBox::InsertAfterCurrent 4 将字符串插入在组合框当前项之后。
QComboBox::InsertBeforeCurrent 5 将字符串插入在组合框当前项之前。
QComboBox::InsertAlphabetically 6 按字母次序将字符串插入组合框。

enum QComboBox:: SizeAdjustPolicy

此枚举指定大小提示如何 QComboBox 调节当添加新内容或改变内容时。

常量 描述
QComboBox::AdjustToContents 0 组合框始终根据内容调节
QComboBox::AdjustToContentsOnFirstShow 1 组合框将调节到其首次展示内容。
QComboBox::AdjustToMinimumContentsLengthWithIcon AdjustToContentsOnFirstShow + 2 组合框将调节到 minimumContentsLength 加图标空间。出于性能原因,在大型模型中使用此策略。

特性文档编制

count : const int

此特性保持组合框中的项数

默认情况下,对于空组合框,此特性拥有 0 值。

访问函数:

int count () const

currentData : const QVariant

此特性保持当前项的数据

默认情况下,对于空组合框或未设置当前项的组合框,此特性包含无效 QVariant .

该特性在 Qt 5.2 引入。

访问函数:

QVariant currentData (int role = Qt::UserRole) const

currentIndex : int

此特性保持组合框当前项的索引。

当前索引会改变,在插入或移除项时。

默认情况下,对于空组合框或未设置当前项的组合框,此特性拥有 -1 值。

访问函数:

int currentIndex () const
void setCurrentIndex (int index )

通知程序信号:

void currentIndexChanged (int index )

currentText : QString

此特性保持当前文本

若组合框是可编辑的,当前文本是由行编辑显示的值。否则,它是当前项的值,或空字符串若组合框为空或未设置当前项。

setter setCurrentText() 只需调用 setEditText () 若组合框是可编辑的。否则,若列表中有匹配文本, currentIndex 被设为相应索引。

访问函数:

QString currentText () const
void setCurrentText (const QString & text )

通知程序信号:

void currentTextChanged (const QString & text )

另请参阅 editable and 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 .

maxCount : int

此特性保持组合框允许的最大项数

注意: 若将最大数设为小于当前组合框项数量,额外项将被截取。若有为组合框设置外部模型,这也适用。

默认情况下,此特性值派生自最高可用有符号整数 (通常为 2147483647)。

访问函数:

int maxCount () const
void setMaxCount (int max )

maxVisibleItems : int

此特性保持组合框在屏幕上的最大允许尺寸,以项数度量

默认情况下,此特性拥有 10 值。

注意: 不可编辑组合框忽略此特性当样式返回 true 时对于 QStyle::SH_ComboBox_Popup (譬如: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 值。

访问函数:

int modelColumn () const
void setModelColumn (int visibleColumn )

placeholderText : QString

设置 placeholderText 展示文本,当未设置有效索引时

The placeholderText 将展示当设置无效索引时。在下拉列表中无法访问文本。当调用此函数时在添加项之前,将展示占位符文本,否则必须调用 setCurrentIndex (-1) 以编程方式若想要展示占位符文本。将占位符文本设为空能重置设置。

QComboBox 可编辑,使用 QLineEdit::setPlaceholderText () 代替。

该特性在 Qt 5.15 引入。

访问函数:

QString placeholderText () const
void setPlaceholderText (const QString & placeholderText )

sizeAdjustPolicy : SizeAdjustPolicy

此特性保持描述组合框尺寸如何变化的策略,当内容更改时

默认值为 AdjustToContentsOnFirstShow .

访问函数:

QComboBox::SizeAdjustPolicy sizeAdjustPolicy () const
void setSizeAdjustPolicy (QComboBox::SizeAdjustPolicy policy )

另请参阅 SizeAdjustPolicy .

成员函数文档编制

QComboBox:: QComboBox ( QWidget * parent = nullptr)

构造组合框采用给定 parent ,使用默认模型 QStandardItemModel .

[signal] void QComboBox:: activated ( int index )

此信号被发射当用户选取组合框项时。项的 index 被传递。注意:此信号被发送,甚至在选取不改变时。若需要知道选取实际何时改变,使用信号 currentIndexChanged () 或 currentTextChanged ().

注意: 信号 activated 在此类中被重载。通过使用函数指针句法连接到此信号,Qt 提供用于获得如此范例展示的函数指针的方便帮助程序:

connect(comboBox, QOverload<int>::of(&QComboBox::activated),
    [=](int index){ /* ... */ });
					

[slot] void QComboBox:: clear ()

清零组合框,移除所有项。

注意:若组合框有设置外部模型,此模型仍会被清零 (当调用此函数时)。

[slot] void QComboBox:: clearEditText ()

清零用于在组合框中编辑的行编辑内容。

[signal] void QComboBox:: currentIndexChanged ( int index )

此信号被发送每当 currentIndex 在组合框透过用户交互或编程方式改变。项的 index 被传递或 -1,若组合框变为空或 currentIndex 被重置。

注意: 通知程序信号对于特性 currentIndex .

注意: 信号 currentIndexChanged 在此类中被重载。通过使用函数指针句法连接到此信号,Qt 提供用于获得如此范例展示的函数指针的方便帮助程序:

connect(comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),
    [=](int index){ /* ... */ });
					

该函数在 Qt 4.1 引入。

[signal] void QComboBox:: currentTextChanged (const QString & text )

此信号被发送每当 currentText 改变。新值的传递是按 text .

注意: 通知程序信号对于特性 currentText .

该函数在 Qt 5.0 引入。

[signal] void QComboBox:: editTextChanged (const QString & text )

此信号被发射当组合框行编辑 Widget 文本改变时。指定新文本通过 text .

[signal] void QComboBox:: highlighted ( int index )

此信号被发送,当用户突显组合框弹出列表项。项的 index 被传递。

注意: 信号 highlighted 在此类中被重载。通过使用函数指针句法连接到此信号,Qt 提供用于获得如此范例展示的函数指针的方便帮助程序:

connect(comboBox, QOverload<int>::of(&QComboBox::highlighted),
    [=](int index){ /* ... */ });
					

[slot] void QComboBox:: setEditText (const QString & text )

设置 text 在组合框的文本编辑。

[signal] void QComboBox:: textActivated (const QString & text )

此信号被发射当用户选取组合框项时。项的 text 被传递。注意:此信号被发送,甚至在选取不改变时。若需要知道选取实际何时改变,使用信号 currentIndexChanged () 或 currentTextChanged ().

该函数在 Qt 5.14 引入。

[signal] void QComboBox:: textHighlighted (const QString & text )

此信号被发送,当用户突显组合框弹出列表项。项的 text 被传递。

该函数在 Qt 5.14 引入。

[虚拟] QComboBox:: ~QComboBox ()

销毁组合框。

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 and text ,和包含指定 userData (存储在 Qt::UserRole )。项会被追加到现有项列表。

void QComboBox:: addItems (const QStringList & texts )

添加每字符串按给定 texts 到组合框。每项被依次追加到现有项列表。

[override virtual protected] void QComboBox:: changeEvent ( QEvent * e )

重实现: QWidget::changeEvent (QEvent *event).

QCompleter *QComboBox:: completer () const

返回被用于自动补全组合框文本输入的补全器。

该函数在 Qt 4.2 引入。

另请参阅 setCompleter () 和 editable .

[override virtual protected] void QComboBox:: contextMenuEvent ( QContextMenuEvent * e )

重实现: QWidget::contextMenuEvent (QContextMenuEvent *event).

[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。

The flags 指定如何搜索组合框项。

int QComboBox:: findText (const QString & text , Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const

返回索引当项包含给定 text ;否则返回 -1。

The 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).

[虚拟] void QComboBox:: hidePopup ()

隐藏组合框项列表若它目前可见并重置内部状态,以便若自定义弹出窗口展示在重实现 showPopup (),那么还需要重实现 hidePopup() 函数以隐藏自定义弹出窗口,和调用基类实现以重置内部状态每当自定义弹出 Widget 被隐藏时。

另请参阅 showPopup ().

[protected] void QComboBox:: initStyleOption ( QStyleOptionComboBox * option ) const

初始化 option 采用值来自此 QComboBox 。此方法对子类是有用的,当需要 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 and userData (存储在 Qt::UserRole ) 进组合框在给定 index .

若索引 >= 项总数,新项会被追加到现有项列表。若索引为 0 (或为负),新项会前置到现有项列表。

另请参阅 insertItems ().

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

插入 icon , text and userData (存储在 Qt::UserRole ) 进组合框在给定 index .

若索引 >= 项总数,新项会被追加到现有项列表。若索引为 0 (或为负),新项会前置到现有项列表。

另请参阅 insertItems ().

void QComboBox:: insertItems ( int index , const QStringList & list )

插入字符串从 list 到组合框作为单独项,起始于 index 指定。

若索引 > 项总数,新项会被追加到现有项列表。若索引为 0 (或为负),新项会被前置到现有项列表。

另请参阅 insertItem ().

void QComboBox:: insertSeparator ( int index )

将分隔符项插入组合框在给定 index .

若索引 >= 项总数,新项会被追加到现有项列表。若索引为 0 (或为负),新项会前置到现有项列表。

该函数在 Qt 4.4 引入。

另请参阅 insertItem ().

QVariant QComboBox:: itemData ( int index , int role = Qt::UserRole) const

返回数据为给定 role 以给定 index in the combobox, or QVariant::Invalid if there is no data for this role.

另请参阅 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 is nullptr ,自动补全被禁用。

默认情况下,对于可编辑组合框, QCompleter 自动创建不区分大小写的内联补全。

注意: 补全器被移除,当 editable 特性变为 false 。设置补全器在 QComboBox (不可编辑) 会被忽略。

该函数在 Qt 4.2 引入。

另请参阅 completer ().

void QComboBox:: setItemData ( int index , const QVariant & value , int role = Qt::UserRole)

设置数据 role 为项在给定 index 在组合框到指定 value .

另请参阅 itemData ().

void QComboBox:: setItemDelegate ( QAbstractItemDelegate * delegate )

设置项 delegate 为弹出列表视图。组合框拥有委托的所有权。

警告: 不应该在组合框、Widget 映射器或视图之间共享同一委托实例。这样做会导致不正确或不直观的编辑行为,由于连接到给定委托的每个视图可能接收 closeEditor() 信号,且试图访问、修改或关闭已关闭的编辑器。

另请参阅 itemDelegate ().

void QComboBox:: setItemIcon ( int index , const QIcon & icon )

设置 icon 为项在给定 index 在组合框。

另请参阅 itemIcon ().

void QComboBox:: setItemText ( int index , const QString & text )

设置 text 为项在给定 index 在组合框。

另请参阅 itemText ().

void QComboBox:: setLineEdit ( QLineEdit * edit )

设置行 edit 以代替使用当前行编辑 Widget。

组合框拥有行编辑的所有权。

另请参阅 lineEdit ().

void QComboBox:: setModel ( QAbstractItemModel * model )

将模型设为 model . model 不得为 nullptr 。若想要清零模型内容,调用 clear ().

另请参阅 model () 和 clear ().

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 or QTreeWidget ),确保调用 setModel () 在组合框采用方便 Widget 模型,在调用此函数之前。

另请参阅 view ().

[override virtual protected] void QComboBox:: showEvent ( QShowEvent * e )

重实现: QWidget::showEvent (QShowEvent *event).

[虚拟] void QComboBox:: showPopup ()

显示组合框项列表。若列表为空,就不会展示项。

若重实现此函数以展示自定义弹出,确保调用 hidePopup () 去重置内部状态。

另请参阅 hidePopup ().

[override virtual] QSize QComboBox:: sizeHint () const

重实现访问函数为特性: QWidget::sizeHint .

此实现缓存大小提示以避免重置大小,当内容动态改变时。要使缓存值无效,改变 sizeAdjustPolicy .

const QValidator *QComboBox:: validator () const

返回用于约束组合框文本输入的验证器。

另请参阅 setValidator () 和 editable .

QAbstractItemView *QComboBox:: view () const

返回用于组合框弹出的列表视图。

另请参阅 setView ().

[override virtual protected] void QComboBox:: wheelEvent ( QWheelEvent * e )

重实现: QWidget::wheelEvent (QWheelEvent *event).