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