怎么在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())
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。