PyQt4。QtCore.QVariant公司对象而不是字符串?

2024-09-28 03:23:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我按照这个例子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: key代码selfidvaluegreenwidgetpyqt
1条回答
网友
1楼 · 发布于 2024-09-28 03:23:34

大多数设置和检索任意“数据”的qtapi都将其存储为QVariant。在

对于Python2,默认情况下,PyQt会在您设置python对象时自动将其转换为QVariant,但当您检索python对象时,PyQt不会自动将其转换回QVariant。所以你必须采取额外的步骤来这样做:

    print self.combox_widget.itemData(indx).toPyObject()

对于Python3,默认情况下,转换总是在两个方向自动完成,因此不需要额外的步骤。在

为了解决这个差异,PyQt通过使用sip模块提供了一个way to explicitly set the default mode

^{pr2}$

这需要在程序开始时完成一次,在导入其他PyQt模块之前,这将确保QVariant不会被任何qtapi返回。在

相关问题 更多 >

    热门问题