【问题标题】:How to setData to QComboBox in PyQt/PySide?如何在 PyQt/PySide 中将数据设置为 QComboBox?
【发布时间】:2014-02-24 23:40:21
【问题描述】:

以下是我如何使用 setData 将数据添加到 QListWidgetItem。我如何以类似的方式(隐藏)添加数据,但添加到 QComboBox 项 - 以及如何从 QComboBoxItems 中检索这些数据?

item = QtGui.QListWidgetItem()
item.setText( myText )
item.setData( QtCore.Qt.UserRole, myData)

self.myListWidget.addItem( item )                       

【问题讨论】:

    标签: python pyqt pyside


    【解决方案1】:

    您可以使用QComboBox.addItem (self, QString text, QVariant userData = QVariant()) 添加项目并使用QComboBox.itemData (self, int index, int role = Qt.UserRole) 检索数据:

    import PyQt4.QtGui as gui, PyQt4.QtCore as core
    
    app = gui.QApplication([])
    
    cb = gui.QComboBox()
    
    cb.addItem('int 1',1)
    cb.addItem('int 2',2)
    cb.addItem('int 3',3)
    cb.addItem('int 4',4)
    
    print cb.itemData(0).toInt()[0]
    
    core.pyqtSlot('int')
    def f(index):
        data,can_convert =  cb.itemData(index).toInt()
        if can_convert:
            print 'integer:',data
    
    cb.currentIndexChanged.connect(f)
    
    cb.show()
    
    app.exec_()
    

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2011-04-15
      • 2013-07-11
      • 2016-11-01
      相关资源
      最近更新 更多