QComboBox 類

QComboBox 小部件組閤按鈕與下拉列錶。 更多...

頭: #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 }
(從 6.9 起) 枚舉類 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

詳細描述

Combo box with collapsed options list

摺疊 QCombobox

Combo box with expanded options list

展開 QCombobox

顯示特徵

QComboBox 是呈現用戶選項列錶的緊湊方式。

組閤框是展示當前項,並在點擊時彈齣可選擇項列錶的選定 Widget。組閤框可以包含像素圖及字符串,若 insertItem () 和 setItemText () 函數被適當重載。

編輯特徵

組閤框可以是可編輯的,允許用戶修改列錶中的各項。對於可編輯組閤框,函數 clearEditText () 的提供,不改變組閤框內容清零顯示字符串。

當用戶在可編輯組閤框中錄入新字符串時,Widget 可能 (或可能不) 插入它,且還可以把它插入在多個位置。默認策略是 InsertAtBottom 但可以改變這使用 setInsertPolicy ().

它是可能的,將輸入約束到可編輯組閤框使用 QValidator ;見 setValidator ()。默認情況下,接受任何輸入。

可以使用插入函數填充組閤框, insertItem () 和 insertItems () 例如。可以改變項采用 setItemText ()。可以移除項采用 removeItem () 和可以移除所有項采用 clear ()。返迴當前項文本通過 currentText (),和采用 text() 返迴編號項文本。可以設置當前項采用 setCurrentIndex ()。組閤框項數的返迴是通過 count ();可以設置最大項數采用 setMaxCount ()。可以允許編輯使用 setEditable ()。對於可編輯組閤框,可以設置自動補全使用 setCompleter () 和設置用戶是否可以重復添加是采用 setDuplicatesEnabled ().

信號

會發射 3 個信號,若組閤框當前項改變: currentIndexChanged (), currentTextChanged (),和 activated (). currentIndexChanged () 和 currentTextChanged () 始終發射,無論改變是通過編程方式還是通過用戶交互完成,而 activated () 纔發射,當通過用戶交互導緻改變時。 highlighted () 信號發射,當用戶高亮組閤框彈齣列錶項時。所有 3 信號均有 2 個版本,一個帶有 QString 自變量和一個帶有 int 自變量。若用戶選擇 (或高亮) 像素圖,僅 int 信號發射。每當可編輯組閤框文本改變時, editTextChanged () 信號發射。

模型/視圖框架

QComboBox 使用 模型/視圖框架 為其彈齣列錶並存儲其項。默認情況下 QStandardItemModel 存儲項和 QListView 子類顯示彈齣列錶。可以直接訪問模型和視圖 (采用 model () 和 view ()),但 QComboBox 還提供設置和獲取項數據的函數,例如 setItemData () 和 itemText ()。還可以設置新的模型和視圖 (采用 setModel () 和 setView ())。對於組閤框標簽文本和圖標,模型數據擁有 Qt::DisplayRole and Qt::DecorationRole 被使用。

注意: 無法更改 SelectionMode view (),例如,通過使用 setSelectionMode ().

另請參閱 QLineEdit , QSpinBox , QRadioButton ,和 QButtonGroup .

成員類型文檔編製

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 按字母次序將字符串插入組閤框。

[since 6.9] enum class QComboBox:: LabelDrawingMode

This enum specifies how the combobox draws its label.

常量 描述
QComboBox::LabelDrawingMode::UseStyle 0 The combobox uses the style to draw its label.
QComboBox::LabelDrawingMode::UseDelegate 1 The combobox uses the item delegate to draw the label. Set a suitable item delegate when using this mode.

This enum was introduced in Qt 6.9.

另請參閱 labelDrawingMode and Books example .

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

此特性保持當前文本

若組閤框是可編輯的,當前文本是由行編輯顯示的值。否則,它是當前項的值,或空字符串若組閤框為空或未設置當前項。

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 .

[since 6.9] labelDrawingMode : LabelDrawingMode

This property holds the mode used by the combobox to draw its label.

默認值為 UseStyle . When changing this property to UseDelegate , make sure to also set a suitable item delegate . The default delegate depends on the style and might not be suitable for drawing the label.

該特性在 Qt 6.9 引入。

訪問函數:

QComboBox::LabelDrawingMode labelDrawingMode () const
void setLabelDrawingMode (QComboBox::LabelDrawingMode labelDrawing )

另請參閱 Books example .

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 () 代替。

訪問函數:

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)

構造組閤框采用給定 parent ,使用默認模型 QStandardItemModel .

[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 and 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 被傳遞或 -1,若組閤框變為空或 currentIndex 被重置。

注意: 通知程序信號對於特性 currentIndex .

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

此信號發射,每當 currentText 改變。新值的傳遞是按 text .

注意: 不發射,若 currentText 仍然相同,即使 currentIndex 改變。

注意: 通知程序信號對於特性 currentText .

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

此信號被發射當組閤框行編輯 Widget 文本改變時。指定新文本通過 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。

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

[virtual] void QComboBox:: hidePopup ()

隱藏組閤框項列錶若它目前可見並重置內部狀態,以便若自定義彈齣窗口展示在重實現 showPopup (),那麼還需要重實現 hidePopup() 函數以隱藏自定義彈齣窗口,和調用基類實現以重置內部狀態每當自定義彈齣 Widget 被隱藏時。

另請參閱 showPopup ().

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

此信號被發送,當用戶突顯組閤框彈齣列錶項。項的 index 被傳遞。

[virtual 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 (或為負),將新項前置到現有項列錶。

另請參閱 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 is nullptr ,自動補全被禁用。

默認情況下,對於可編輯組閤框, QCompleter 自動創建不區分大小寫的內聯補全。

注意: 補全器被移除,當 editable 特性變為 false ,或當行編輯被替換通過調用 setLineEdit (). Setting a completer on a QComboBox (不可編輯) 會被忽略。

另請參閱 completer ().

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

設置 text 在組閤框的文本編輯。

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

設置數據 role 為項在給定 index 在組閤框到指定 value .

另請參閱 itemData ().

void QComboBox:: setItemDelegate ( QAbstractItemDelegate * delegate )

設置項 delegate 為彈齣列錶視圖。組閤框擁有委托的所有權。

任何現有委托將被移除,但不被刪除。 QComboBox 未擁有所有權對於 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。

組閤框擁有行編輯的所有權。

注意: 由於組閤框行編輯擁有 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 or QTreeWidget ),確保調用 setModel () 在組閤框采用方便 Widget 模型,在調用此函數之前。

另請參閱 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).