我按照这个例子Key/Value pyqt QComboBox,使用下面的代码将ID值存储到组合框项中。在
self.combox_widget.addItem('Apples', 'Green')
indx = self.combox_widget.currentIndex()
print self.combox_widget.itemData(indx)
但是,我得到了<PyQt4.QtCore.QVariant object at 0x02AC1A70>
试图检索数据值(在上面的例子中是绿色的)。我错过了什么?在
Tags:
大多数设置和检索任意“数据”的qtapi都将其存储为QVariant。在
对于Python2,默认情况下,PyQt会在您设置python对象时自动将其转换为QVariant,但当您检索python对象时,PyQt不会自动将其转换回QVariant。所以你必须采取额外的步骤来这样做:
对于Python3,默认情况下,转换总是在两个方向自动完成,因此不需要额外的步骤。在
为了解决这个差异,PyQt通过使用
^{pr2}$sip
模块提供了一个way to explicitly set the default mode:这需要在程序开始时完成一次,在导入其他PyQt模块之前,这将确保QVariant不会被任何qtapi返回。在
相关问题 更多 >
编程相关推荐