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

