2014-02-24 86 views
2

以下是我如何使用setData將數據添加到QListWidgetItem。我怎樣才能以類似的方式添加數據(隱藏它),但是添加到QComboBox項目 - 我如何從QComboBoxItems中獲取數據?如何在PyQt/PySide中將數據設置爲QComboBox?

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

self.myListWidget.addItem(item)      

回答

6

您可以使用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_() 
+0

完美,謝謝! – fredrik

相關問題