PyQt – QComboBox小工具
一个 QComboBox 对象展示了一个可供选择的下拉列表。它在窗体上占用最小的屏幕空间,只显示当前选择的项目。
一个ComboBox可以被设置为可编辑的;它也可以存储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()方法添加到列表对象中。
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