国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

pyqt5的QComboBox 使用模板的具體方法

2020-01-04 14:34:54
字體:
來源:轉載
供稿:網友

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

熟悉一下代碼,直接就可以用了。

pyqt5,QComboBox,模板

【如下代碼,完全復制,直接運行,即可使用】

import sysfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *################################################items_list=["C","C++","Java","Python","JavaScript","C#","Swift","go","Ruby","Lua","PHP"]datas_list=[1972,1983,1995,1991,1992,2000,2014,2009,1995,1993,1995]################################################class Widget(QWidget):  def __init__(self, *args, **kwargs):    super(Widget, self).__init__(*args, **kwargs)    layout = QVBoxLayout(self)    self.combobox1 = QComboBox(self, minimumWidth=200)    self.combobox2 = QComboBox(self, minimumWidth=200)    self.combobox3 = QComboBox(self, minimumWidth=200)    self.combobox4 = QComboBox(self, minimumWidth=200)    layout.addWidget(QLabel("增加單項,不帶數據", self))    layout.addWidget(self.combobox1)    layout.addItem(QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))    layout.addWidget(QLabel("增加單項,附帶數據", self))    layout.addWidget(self.combobox2)    layout.addItem(QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))    layout.addWidget(QLabel("增加多項,不帶數據", self))    layout.addWidget(self.combobox3)    layout.addItem(QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))    layout.addWidget(QLabel("設置模型,不帶數據", self))    layout.addWidget(self.combobox4)    #初始化combobox    self.init_combobox1()    self.init_combobox2()    self.init_combobox3()    self.init_combobox4()    #增加選中事件    self.combobox1.activated.connect(self.on_combobox1_Activate)    self.combobox2.activated.connect(self.on_combobox2_Activate)    self.combobox3.activated.connect(self.on_combobox3_Activate)    self.combobox4.activated.connect(self.on_combobox4_Activate)  ####### addItem() 增加單項元素,不帶數據 #########  def init_combobox1(self):    for i in range(len(items_list)):      self.combobox1.addItem(items_list[i])    self.combobox1.setCurrentIndex(-1)  def on_combobox1_Activate(self, index):    print(self.combobox1.count())    print(self.combobox1.currentIndex())    print(self.combobox1.currentText())    print(self.combobox1.currentData())    print(self.combobox1.itemData(self.combobox1.currentIndex()))    print(self.combobox1.itemText(self.combobox1.currentIndex()))    print(self.combobox1.itemText(index))  ####### addItem() 增加單項元素,附帶數據 #########  def init_combobox2(self):    for i in range(len(items_list)):      self.combobox2.addItem(items_list[i],datas_list[i])    self.combobox2.setCurrentIndex(-1)  def on_combobox2_Activate(self, index):    print(self.combobox2.count())    print(self.combobox2.currentIndex())    print(self.combobox2.currentText())    print(self.combobox2.currentData())    print(self.combobox2.itemData(self.combobox2.currentIndex()))    print(self.combobox2.itemText(self.combobox2.currentIndex()))    print(self.combobox2.itemText(index))  ####### addItems() 增加多項元素,不帶數據 #########  def init_combobox3(self):    self.combobox3.addItems(items_list)    self.combobox3.setCurrentIndex(-1)  def on_combobox3_Activate(self, index):    print(self.combobox3.count())    print(self.combobox3.currentIndex())    print(self.combobox3.currentText())    print(self.combobox3.currentData())    print(self.combobox3.itemData(self.combobox3.currentIndex()))    print(self.combobox3.itemText(self.combobox3.currentIndex()))    print(self.combobox3.itemText(index))  ####### setModel() 設置數據模型,不帶數據 #########  def init_combobox4(self):    self.tablemodel = QStringListModel(items_list)    self.combobox4.setModel(self.tablemodel)    self.combobox4.setCurrentIndex(-1)  def on_combobox4_Activate(self, index):    print(self.combobox4.count())    print(self.combobox4.currentIndex())    print(self.combobox4.currentText())    print(self.combobox4.currentData())    print(self.combobox4.itemData(self.combobox4.currentIndex()))    print(self.combobox4.itemText(self.combobox4.currentIndex()))    print(self.combobox4.itemText(index))if __name__ == "__main__":  app = QApplication(sys.argv)  w = Widget()  w.show()  sys.exit(app.exec_())

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安新县| 泰宁县| 格尔木市| 炉霍县| 灵寿县| 郎溪县| 梧州市| 扶绥县| 贞丰县| 洛阳市| 山阴县| 华阴市| 阳泉市| 洛川县| 越西县| 芜湖市| 宜城市| 浮梁县| 石狮市| 玉屏| 涿州市| 时尚| 承德县| 棋牌| 鄂伦春自治旗| 西青区| 平度市| 云梦县| 丰顺县| 莱西市| 绥芬河市| 永兴县| 临泽县| 察哈| 兴隆县| 梁山县| 长泰县| 宁城县| 峨山| 无为县| 长葛市|