PyQt QComboBox 小部件
一个 QComboBox 对象呈现了一个下拉列表供选择。它在表单上只占用所需的最小屏幕空间,仅显示当前选择的项目。
Combo box 可以被设置为可编辑的;它还可以存储 pixmap 对象。以下方法通常被使用 −
下面是 QComboBox 的最常用的方法。
编号 | 方法与描述 |
---|---|
1 | addItem() 向集合中添加字符串 |
2 | addItems() 向列表对象中添加项 |
3 | Clear() 删除集合中的所有项 |
4 | count() 检索集合中的项数 |
5 | currentText() 检索当前选择项的文本 |
6 | itemText() 显示特定索引所属的文本 |
7 | currentIndex() 返回所选项的索引 |
8 | setItemText() 更改指定索引的文本 |
QComboBox 信号
序号 | 方法及描述 |
---|---|
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 PyQt4.QtCore import *
from PyQt4.QtGui 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()
上面的代码产生以下输出:
列表中的项目包括:
C
C++
Java
C#
Python
Current selection index 4 selection changed Python