Pyqt5_QComboBox
Posted yaner2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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_())
以上是关于Pyqt5_QComboBox的主要内容,如果未能解决你的问题,请参考以下文章