Phil Thompson wrote:
On Wednesday 04 April 2007 3:01 am, Drew Vogel wrote:
Consider this listing:
1.
from PyQt4 import QtCore
2.
from PyQt4 import QtGui
3.
4.
5.
# This works
6.
i = QtGui.QIcon()
7.
qi = QtCore.QVariant(i)
8.
9.
10.
# This throws TypeError: argument 1 of QVariant() has invalid type
11.
class C:
12.
def __init__(self, v):
13.
self.value = v
14.
15.
x = C(100)
16.
qx = QtCore.QVariant(x)
Why does line 16 throw TypeError, but line 7 does not? I suspect that it
has something to do with "x" being a python class and "i" being a Qt
class, but I don't see anything in the QVariant documentation mentioning
a difference. Is this supposed to be supported?
QVariant can only handle types it knows about (nothing to do with whether they
are Qt classes). It knows nothing about C.
Phil
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Is there any way to tell QVariant about my C class? In C++ I did this
with the Q_DECLARE_METATYPE macro and qRegisterMetaType(). The PyQt4
QVariant documentation[1] links to the QMetaType documentation[2], but
the link is dead. I couldn't find the equivilent through trial and error
so I suspected that PyQt didn't need to register meta types because it
used Python's introspection features.
[1] http://www.riverbankcomputing.com/Docs/PyQt4/html/qvariant.html
[2] http://www.riverbankcomputing.com/Docs/PyQt4/html/qmetatype.html
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt