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