PyQt5 - QComboBox 小部件

  • 简述

    QComboBoxobject 提供一个下拉列表,其中包含可供选择的项目。只显示当前选定的项目所需的窗体上的最小屏幕空间。
    组合框可以设置为可编辑;它还可以存储像素图对象。以下方法是常用的 -
    序号 方法和描述
    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() 方法单独添加到集合中,或者 List 对象中的项目通过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()
    
    
  • 输出

    上面的代码产生以下输出 -
    QComboBox 小部件输出
    列表中的项目是 -
    
    
    C
    
    C++
    
    Java
    
    C#
    
    Python
    
    Current selection index 4 selection changed Python