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
熟悉一下代码,直接就可以用了。
【如下代码,完全复制,直接运行,即可使用】
import sys from 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_())
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】
- 陈思安.1990-国语钢琴酒吧5CD【欣代唱片】【WAV+CUE】
- 莫文蔚《莫后年代20周年世纪典藏》3CD[WAV+CUE][2G]
- 张惠妹《我要快乐》华纳[WAV+CUE][1G]
- 罗大佑1982《之乎者也》无法盗版的青春套装版 [WAV+CUE][1G]
- 曾庆瑜1989-款款柔情[日本东芝版][WAV+CUE]
- Scelsi-IntegraledesquatuorsacordesetTrioacordes-QuatuorMolinari(2024)[24bit-WAV]
- 房东的猫2017-房东的猫[科文音像][WAV+CUE]
- 杨乃文.2016-离心力(引进版)【亚神音乐】【WAV+CUE】
- 群星.2024-珠帘玉幕影视原声带【TME】【FLAC分轨】
- 芝麻龙眼.2008-光阴隧道民歌记录3CD【乡城】【WAV+CUE】
- 谭艳《再度重相逢HQII》头版限量[低速原抓WAV+CUE][549M]
- ABC唱片《蔡琴三十周年纪念版》6N纯银镀膜 [WAV+CUE][1.1G]