PyQt5 - QComboBox 小部件
QComboBox 对象提供一个可供选择的项目的下拉列表。 只显示当前选定的项目所需的窗体上的最小屏幕空间。
可以将组合框设置为可编辑; 它还可以存储像素图对象。 常用的方法有以下几种 −
序号 | 方法 & 说明 |
---|---|
1 |
addItem() 将字符串添加到集合 |
2 |
addItems() 在列表对象中添加项目 |
3 |
Clear() 删除集合中的所有项目 |
4 |
count() 检索集合中的项目数 |
5 |
currentText() 检索当前选定项目的文本 |
6 |
itemText() 显示属于特定索引的文本 |
7 |
currentIndex() 返回所选项目的索引 |
8 |
setItemText() 更改指定索引的文本 |
QComboBox Signals
QComboBox Signals中常用的方法如下 −
序号 | 方法 & 说明 |
---|---|
1 |
activated() 当用户选择一个项目时 |
2 |
currentIndexChanged() 每当当前索引由用户或以编程方式更改时 |
3 |
highlighted() 当列表中的项目突出显示时 |
示例
下面让我们看看 QComboBox 小部件的一些功能是如何实现的。
通过 addItem() 方法将项目单独添加到集合中,或者通过 addItems() 方法将项目添加到 List 对象中。
self.cb.addItem("C++") self.cb.addItems(["Java", "C#", "Python"])
QComboBox 对象发出 currentIndexChanged() 信号。 它连接到 selectionchange() 方法。
组合框中的项目使用 itemText() 方法列出每个项目。 currentText() 方法可以访问属于当前所选项目的标签。
def selectionchange(self,i): print "Items in the list are :" for count in range(self.cb.count()): print self.cb.itemText(count) print "Current index",i,"selection changed ",self.cb.currentText()
整个代码如下 −
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class combodemo(QWidget): def __init__(self, parent = None): super(combodemo, self).__init__(parent) layout = QHBoxLayout() self.cb = QComboBox() self.cb.addItem("C") self.cb.addItem("C++") self.cb.addItems(["Java", "C#", "Python"]) self.cb.currentIndexChanged.connect(self.selectionchange) layout.addWidget(self.cb) self.setLayout(layout) self.setWindowTitle("combo box demo") def selectionchange(self,i): print "Items in the list are :" for count in range(self.cb.count()): print self.cb.itemText(count) print "Current index",i,"selection changed ",self.cb.currentText() def main(): app = QApplication(sys.argv) ex = combodemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
Output
上面的代码产生以下输出 −
Items in the list are −
C C++ Java C# Python Current selection index 4 selection changed Python