# Python Objects and QVariant

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.