怎么在python中使用QComboBox下拉列表框控件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
QComboBox是一个集按钮和下拉选项于一体的控件,也称做下拉列表框
QComboBox类中的常用方法如表
方法 | 描述 |
---|---|
addItem() | 添加一个下拉选项 |
addItems() | 从列表中添加下拉选项 |
Clear() | 删除下拉选项集合中的所有选项 |
count() | 返回下拉选项集合中的数目 |
currentText() | 返回选中选项的文本 |
itemText(i) | 获取索引为i的item的选项文本 |
currentIndex() | 返回选中项的索引 |
setItemText(int index,text) | 改变序列号为index的文本 |
信号 | 含义 |
---|---|
Activated | 当用户选中一个下拉选项时发射该信号 |
currentIndexChanged | 当下拉选项的索引发生改变时发射该信号 |
highlighted | 当选中一个已经选中的下拉选项时,发射该信号 |
下拉列表框控件QComboBox按钮的使用实例
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class ComboxDemo(QWidget):
def __init__(self,parent=None):
super(ComboxDemo, self).__init__(parent)
#设置标题
self.setWindowTitle('ComBox例子')
#设置初始界面大小
self.resize(300,90)
#垂直布局
layout=QVBoxLayout()
#创建标签,默认空白
self.btn1=QLabel('')
#实例化QComBox对象
self.cb=QComboBox()
#单个添加条目
self.cb.addItem('C')
self.cb.addItem('C++')
self.cb.addItem('Python')
#多个添加条目
self.cb.addItems(['Java','C#','PHP'])
#当下拉索引发生改变时发射信号触发绑定的事件
self.cb.currentIndexChanged.connect(self.selectionchange)
#控件添加到布局中,设置布局
layout.addWidget(self.cb)
layout.addWidget(self.btn1)
self.setLayout(layout)
def selectionchange(self,i):
#标签用来显示选中的文本
#currentText():返回选中选项的文本
self.btn1.setText(self.cb.currentText())
print('Items in the list are:')
#输出选项集合中每个选项的索引与对应的内容
#count():返回选项集合中的数目
for count in range(self.cb.count()):
print('Item'+str(count)+'='+self.cb.itemText(count))
print('current index',i,'selection changed',self.cb.currentText())
if __name__ == '__main__':
app=QApplication(sys.argv)
comboxDemo=ComboxDemo()
comboxDemo.show()
sys.exit(app.exec_())
效果图如下
在这个例子中显示了一个下拉列表框和一个标签,其中下拉列表框中有几个选项,既可以使用QCombobox的addItem()方法添加单个选项,也可以使用addItems()方法添加多个选项:标签显示的是从下拉列表框中选择的选项
#单个添加条目
self.cb.addItem('C')
self.cb.addItem('C++')
self.cb.addItem('Python')
#多个添加条目
self.cb.addItems(['Java','C#','PHP'])
当下拉列表框选中的选项发生改变时将发射currentIndexChanged信号,链接到自定义的槽函数selectionChange()
self.cb.currentIndexChanged.connect(self.selectionchange)
在方法中,当选中下拉列表框中的一个选项时,将把该选项文本设置为标签的文本,并调整标签的大小
def selectionchange(self,i):
#标签用来显示选中的文本
#currentText():返回选中选项的文本
self.btn1.setText(self.cb.currentText())
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。