PyQt5 QComboBox小部件

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()

输出

以上代码产生以下输出 −

PyQt5 QComboBox小部件

列表中的项目为−

C
C++
Java
C#
Python
Current selection index 4 selection changed Python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程