【问题标题】:Pyqt Combobox like Html类似于 Html 的 Pyqt 组合框
【发布时间】:2018-03-23 10:09:29
【问题描述】:

我正在使用 PyQt5,我想为 QComboBox 中的每个项目分配一个值,例如 HTML 组合框。

我知道我可以获取所选项目或索引,但我想获取值。

例如在 HTML 中:

 <select>
  <option value="0.18">Name 1</option>
  <option value="0.36">Name 2</option>
  <option value="0.40">Name 3</option>
  <option value="0.43">Name 4</option>
</select> 

有可能做这样的事情吗?

【问题讨论】:

    标签: python pyqt qcombobox


    【解决方案1】:

    您可以使用 userData 执行此操作,这是一个工作示例

    from PyQt4 import QtGui, QtCore
    import sys
    
    
    class Example(QtGui.QWidget):
        def __init__(self):
            super(Example, self).__init__()
            self.initUI()
    
        def initUI(self):
            self.btn = QtGui.QComboBox(self)
            dataToAdd = {"Name 1" : 0.18, "Name 2" : 0.36, "Name 3" : 0.41, "Name 4" : 0.43,}
            self.btn.addItem("Select")
            for eachItem in dataToAdd:
                val = dataToAdd[eachItem]
                self.btn.addItem(eachItem, userData=QtCore.QVariant(str(val)))
            self.btn.move(20, 20)
            self.setGeometry(300, 300, 290, 150)
            self.btn.currentIndexChanged.connect(self.foo)
            self.show()
    
        def foo(self, value):
            itemValue = self.btn.itemData(value).toString()
            itemText = self.btn.itemText(value)
            print itemValue, "====", itemText
    
    def main():
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        main()
    

    更多详情请查看文档http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#addItem

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2011-10-30
      相关资源
      最近更新 更多