Pyqt5_QComboBox

QComboBox

是一个集按钮和下拉选项于一体的控件,也称做下拉列表框

方法
addItem()

添加一个下拉选项

addItems()

从列表中添加下拉选项

Clear()

删除下拉选项集合中的所有选项

count()

返回下拉选项集合中的数目

currentText()

返回选中选项的文本

itemText(i)

获取索引为i的item的选项文本

currentIndex()

返回选中项的索引

setItemText(int index,text)

改变序列号为index的文本

信号
Activated  

当用户选中一个下拉选项时发射该信号

currentIndexChanged

当下拉选项的索引发生改变时发射该信号

highlighted      

当选中一个已经选中的下拉选项时,发射该信号

 

 1 baudrate_label = QLabel(' 波  特  率  ')  
 2         bytesize_label = QLabel(' 数  据  位'  ) 
 3         parity_label = QLabel(' 校  验  位  ') 
 4         stopbit_label = QLabel(' 停  止  位  ')
 5         
 6         self.serialPort_combox = QComboBox()
 7         port_serial = mylib.getPort()
 8         i = 0
 9         for i in range(len(port_serial)):
10             self.serialPort_combox.addItem(str(port_serial[i]))#一个个添加
11         self.serialPort_combox.setCurrentIndex(len(port_serial)-1)#设置默认值为最后一个
12         self.baudrate_combox = QComboBox()
13         self.baudrate_combox.addItems(myconst.baudrate_list)#直接添加一个list
14         self.baudrate_combox.setCurrentText(myconst.baudrate_list[4])#设置默认选择
15         #for item in myconst.baudrate_list:
16             #baudrate_combox.addItem(str(item))
17             
18         self.bytesize_combox = QComboBox()  
19         self.bytesize_combox.addItems(myconst.bytesizes)
20         self.bytesize_combox.setCurrentText(myconst.bytesizes[3])#设置默认选择
21         self.parity_combox = QComboBox()
22         self.parity_combox.addItems(myconst.parity_list)
23         self.stopbit_combox = QComboBox()
24         self.stopbit_combox.addItems(myconst.stop_bits)
25         self.stopbit_combox.setCurrentIndex(0)
26         #将以上控件添加到formlayout布局中
27         flayout_1.addRow(serialPort_label, self.serialPort_combox)
28         flayout_1.addRow(baudrate_label, self.baudrate_combox)
29         flayout_1.addRow(bytesize_label, self.bytesize_combox)
30         flayout_1.addRow(parity_label, self.parity_combox)
31         flayout_1.addRow(stopbit_label, self.stopbit_combox)
32         #将布局添加到paraConf_combox (QGroupBox) 中
33         self.portSetting_groupbox.setLayout(flayout_1)

 

 1 import sys
 2 from PyQt5.QtCore import *
 3 from PyQt5.QtWidgets import *
 4 from PyQt5.QtCore import *
 5 
 6 class ComboxDemo(QWidget):
 7     def __init__(self,parent=None):
 8         super(ComboxDemo, self).__init__(parent)
 9         #设置标题
10         self.setWindowTitle('ComBox例子')
11         #设置初始界面大小
12         self.resize(300,90)
13 
14         #垂直布局
15         layout=QVBoxLayout()
16         #创建标签,默认空白
17         self.btn1=QLabel('')
18 
19         #实例化QComBox对象
20         self.cb=QComboBox()
21         #单个添加条目
22         self.cb.addItem('C')
23         self.cb.addItem('C++')
24         self.cb.addItem('Python')
25         #多个添加条目
26         self.cb.addItems(['Java','C#','PHP'])
27         #当下拉索引发生改变时发射信号触发绑定的事件
28         self.cb.currentIndexChanged.connect(self.selectionchange)
29 
30         #控件添加到布局中,设置布局
31         layout.addWidget(self.cb)
32         layout.addWidget(self.btn1)
33         self.setLayout(layout)
34 
35     def selectionchange(self,i):
36         #标签用来显示选中的文本
37         #currentText():返回选中选项的文本
38         self.btn1.setText(self.cb.currentText())
39         print('Items in the list are:')
40         #输出选项集合中每个选项的索引与对应的内容
41         #count():返回选项集合中的数目
42         for count in range(self.cb.count()):
43             print('Item'+str(count)+'='+self.cb.itemText(count))
44             print('current index',i,'selection changed',self.cb.currentText())
45 
46 if __name__ == '__main__':
47     app=QApplication(sys.argv)
48     comboxDemo=ComboxDemo()
49     comboxDemo.show()
50     sys.exit(app.exec_())

 

posted @ 2018-10-18 19:55  yanerfree  阅读(2395)  评论(0编辑  收藏  举报