Pyqt5_QComboBox
阅读原文时间:2023年07月12日阅读:3

QComboBox

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

方法
addItem()

添加一个下拉选项

addItems()

从列表中添加下拉选项

Clear()

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

count()

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

currentText()

返回选中选项的文本

itemText(i)

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

currentIndex()

返回选中项的索引

setItemText(int index,text)

改变序列号为index的文本

信号
Activated

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

currentIndexChanged

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

highlighted

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

baudrate_label = QLabel(' 波 特 率 ')
bytesize_label = QLabel(' 数 据 位' )
parity_label = QLabel(' 校 验 位 ')
stopbit_label = QLabel(' 停 止 位 ')

     self.serialPort\_combox = QComboBox()  
     port\_serial = mylib.getPort()  
     i = 0  
     for i in range(len(port\_serial)):  
         self.serialPort\_combox.addItem(str(port\_serial\[i\]))#一个个添加  
     self.serialPort\_combox.setCurrentIndex(len(port\_serial)-1)#设置默认值为最后一个  
     self.baudrate\_combox = QComboBox()  
     self.baudrate\_combox.addItems(myconst.baudrate\_list)#直接添加一个list  
     self.baudrate\_combox.setCurrentText(myconst.baudrate\_list\[4\])#设置默认选择  
     #for item in myconst.baudrate\_list:  
         #baudrate\_combox.addItem(str(item))

     self.bytesize\_combox = QComboBox()  
     self.bytesize\_combox.addItems(myconst.bytesizes)  
     self.bytesize\_combox.setCurrentText(myconst.bytesizes\[3\])#设置默认选择  
     self.parity\_combox = QComboBox()  
     self.parity\_combox.addItems(myconst.parity\_list)  
     self.stopbit\_combox = QComboBox()  
     self.stopbit\_combox.addItems(myconst.stop\_bits)  
     self.stopbit\_combox.setCurrentIndex(0)  
     #将以上控件添加到formlayout布局中  
     flayout\_1.addRow(serialPort\_label, self.serialPort\_combox)  
     flayout\_1.addRow(baudrate\_label, self.baudrate\_combox)  
     flayout\_1.addRow(bytesize\_label, self.bytesize\_combox)  
     flayout\_1.addRow(parity\_label, self.parity\_combox)  
     flayout\_1.addRow(stopbit\_label, self.stopbit\_combox)  
     #将布局添加到paraConf\_combox (QGroupBox) 中  
     self.portSetting\_groupbox.setLayout(flayout\_1)

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_())

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章