QComboBox 的常規使用方法,在這個使用模板里,基本都有了。
QComboBox小部件是一個組合的按鈕和彈出列表。
QComboBox提供了一種向用戶呈現選項列表的方式,其占用最小量的屏幕空間。
組合框是一個顯示當前項目的選擇小部件,可以彈出可選項目列表。組合框可以是可編輯的,允許用戶修改列表中的每個項目。
組合框可以包含圖像以及字符串; 當然insertItem()和setItemText()函數需要適當重載。對于可編輯組合框,提供了函數clearEditText(),以清除顯示的字符串而不更改組合框的內容。
如果組合框的當前項目發生更改,則會發出兩個信號currentIndexChanged()和activated()。無論以編程方式或通過用戶交互完成更改,currentIndexChanged()總是被發射,而只有當更改是由用戶交互引起時才activated() 。highlighted()信號在用戶突出顯示組合框彈出列表中的項目時發出。所有三個信號都有兩個版本,一個帶有str參數,另一個帶有int參數。如果用戶選擇或突出顯示一個圖像,則只會發出int信號。每當可編輯組合框的文本發生改變時,editTextChanged()信號就會發出。
當用戶在可編輯的組合框中輸入一個新的字符串時,該小部件可能會插入它,也可能不會插入它,并且可以將它插入到多個位置。默認策略是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和Qt.DecorationRole的模型中的數據。請注意,您不能通過使用setSelectionMode()來更改view()的SelectionMode。
類歸屬
PyQt5->QtWidgets->QComboBox
繼承關系
PyQt5->QObject and QPaintDevice->QWidget->QFontComboBox->QComboBox
|
新聞熱點
疑難解答