Qt uses the QVariant class as a wrapper for any C++ data type. PyQt4 allows any Python object to be wrapped as a QVariant and passed around Qt’s meta-object system like any other type.
PyQt4 will try to convert the Python object to a C++ equivalent if it can so that the QVariant can be passed to other C++ code that doesn’t know what a Python object is.
Version 2 of PyQt4’s QVariant API will automatically convert a QVariant back to a Python object of the correct type.
Version 1 of the QVariant API provides the QVariant.toPyObject() method to convert the QVariant back to a Python object of the correct type.
Both versions will raise a Python exception if the conversion cannot be done.