Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么不';t QVariant.toFoo()和QVariant.convert(Foo)等价物?_Python_Qt_Pyqt - Fatal编程技术网

Python 为什么不';t QVariant.toFoo()和QVariant.convert(Foo)等价物?

Python 为什么不';t QVariant.toFoo()和QVariant.convert(Foo)等价物?,python,qt,pyqt,Python,Qt,Pyqt,我正在尝试将QVariant转换为QSize from PyQt4.QtCore import ( QVariant, QSize,

我正在尝试将QVariant转换为QSize

from PyQt4.QtCore import (                                                     
    QVariant,                                                                  
    QSize,                                                                      
    )                                                                          

s = QSize(4,3)                                                                 
x = QVariant(s)                                                                

#Check, and hopefully do conversion                                            
print x.canConvert(QVariant.Size) #True                                           
print x.convert(QVariant.Size)    #True                                           
print type(x)                     #<class 'PyQt4.QtCore.QVariant'>...why??                
print type(x.toSize())            #<class 'PyQt4.QtCore.QSize'>
从PyQt4.QtCore导入(
QVariant,
QSize,
)                                                                          
s=QSize(4,3)
x=QV变量
#检查,并希望做转换
打印x.canConvert(QVariant.Size)#真
打印x.convert(QVariant.Size)#真
打印类型(x)#…为什么??
打印类型(x.toSize())#
为什么我必须做x.toSize才能使x的类型为QSize?我期望x.convert()会使x成为QSize的实例

这对我没什么帮助。。。 …因为它说convert()“将变量强制转换为请求的类型…”


谢谢你的帮助

你误解了这个计划的目的

它转换变量值的类型,而不是
QVariant
本身

证明:

>>> from PyQt4.QtCore import QVariant
>>> v = QVariant(100)
>>> v.typeName()
'int'
>>> v.convert(QVariant.String)
True
>>> v.typeName()
'QString'
to*()
函数返回转换为请求类型的变量值(如果可能),但不更改
QVariant
本身的当前类型:

>>> v.toInt()
(100, True)
>>> v.typeName()
'QString'

你误解了这个计划的目的

它转换变量值的类型,而不是
QVariant
本身

证明:

>>> from PyQt4.QtCore import QVariant
>>> v = QVariant(100)
>>> v.typeName()
'int'
>>> v.convert(QVariant.String)
True
>>> v.typeName()
'QString'
to*()
函数返回转换为请求类型的变量值(如果可能),但不更改
QVariant
本身的当前类型:

>>> v.toInt()
(100, True)
>>> v.typeName()
'QString'