Pyqt Combobox像Html
问题描述:
我正在使用PyQt5,我想为QComboBox中的每个项目分配一个值,如HTML组合框。Pyqt Combobox像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>
是否有可能做这样的事情?
答
为此,您可以使用用户数据,这里是一个工作示例
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