SourceForge.net Logo
PythonQt
Static Public Member Functions | Static Public Attributes | Static Protected Member Functions | Static Protected Attributes | List of all members
PythonQtConv Class Reference

a static class that offers methods for type conversion More...

#include <PythonQtConversion.h>

Static Public Member Functions

static PyObjectGetPyBool (bool val)
 get a ref counted True or False Python object More...
 
static PyObjectConvertQtValueToPython (const PythonQtMethodInfo::ParameterInfo &info, const void *data)
 converts the Qt parameter given in data, interpreting it as a info parameter, into a Python object, More...
 
static void * ConvertPythonToQt (const PythonQtMethodInfo::ParameterInfo &info, PyObject *obj, bool strict, PythonQtClassInfo *classInfo, void *alreadyAllocatedCPPObject=NULL)
 convert python object to Qt (according to the given parameter) and if the conversion should be strict (classInfo is currently not used anymore) More...
 
static void * CreateQtReturnValue (const PythonQtMethodInfo::ParameterInfo &info)
 creates a data storage for the passed parameter type and returns a void pointer to be set as arg[0] of qt_metacall More...
 
static PyObjectQStringToPyObject (const QString &str)
 converts QString to Python string (unicode!) More...
 
static PyObjectQStringListToPyObject (const QStringList &list)
 converts QStringList to Python tuple More...
 
static PyObjectQStringListToPyList (const QStringList &list)
 converts QStringList to Python list More...
 
static QString PyObjGetRepresentation (PyObject *val)
 get string representation of py object More...
 
static QString PyObjGetString (PyObject *val)
 get string value from py object More...
 
static QString PyObjGetString (PyObject *val, bool strict, bool &ok)
 get string value from py object More...
 
static QByteArray PyObjGetBytes (PyObject *val, bool strict, bool &ok)
 get bytes from py object More...
 
static int PyObjGetInt (PyObject *val, bool strict, bool &ok)
 get int from py object More...
 
static qint64 PyObjGetLongLong (PyObject *val, bool strict, bool &ok)
 get int64 from py object More...
 
static quint64 PyObjGetULongLong (PyObject *val, bool strict, bool &ok)
 get int64 from py object More...
 
static double PyObjGetDouble (PyObject *val, bool strict, bool &ok)
 get double from py object More...
 
static bool PyObjGetBool (PyObject *val, bool strict, bool &ok)
 get bool from py object More...
 
static QStringList PyObjToStringList (PyObject *val, bool strict, bool &ok)
 create a string list from python sequence More...
 
static QVariant PyObjToQVariant (PyObject *val, int type=-1)
 
static PyObjectQVariantToPyObject (const QVariant &v)
 convert QVariant from PyObject More...
 
static PyObjectQVariantHashToPyObject (const QVariantHash &m)
 
static PyObjectQVariantMapToPyObject (const QVariantMap &m)
 
static PyObjectQVariantListToPyObject (const QVariantList &l)
 
static QString CPPObjectToString (int type, const void *data)
 get human readable string from CPP object (when the metatype is known) More...
 
static void registerPythonToMetaTypeConverter (int metaTypeId, PythonQtConvertPythonToMetaTypeCB *cb)
 register a converter callback from python to cpp for given metatype More...
 
static void registerMetaTypeToPythonConverter (int metaTypeId, PythonQtConvertMetaTypeToPythonCB *cb)
 register a converter callback from cpp to python for given metatype More...
 
static PyObjectConvertQtValueToPythonInternal (int type, const void *data)
 converts the Qt parameter given in data, interpreting it as a type registered qvariant/meta type, into a Python object, More...
 
static void * castWrapperTo (PythonQtInstanceWrapper *wrapper, const QByteArray &className, bool &ok)
 cast wrapper to given className if possible More...
 

Static Public Attributes

static PythonQtValueStorage
< qint64, 128 > 
global_valueStorage
 
static PythonQtValueStorage
< void *, 128 > 
global_ptrStorage
 
static
PythonQtValueStorageWithCleanup
< QVariant, 128 > 
global_variantStorage
 

Static Protected Member Functions

static void * handlePythonToQtAutoConversion (int typeId, PyObject *obj, void *alreadyAllocatedCPPObject)
 handle automatic conversion of some special types (QColor, QBrush, ...) More...
 
static PyObjectConvertQListOfPointerTypeToPythonList (QList< void * > *list, const QByteArray &type)
 converts the list of pointers of given type to Python More...
 
static bool ConvertPythonListToQListOfPointerType (PyObject *obj, QList< void * > *list, const QByteArray &type, bool strict)
 tries to convert the python object to a QList of pointers to type objects, returns true on success More...
 
template<typename Map >
static void pythonToMapVariant (PyObject *val, QVariant &result)
 helper template method for conversion from Python to QVariantMap/Hash More...
 
template<typename Map >
static PyObjectmapToPython (const Map &m)
 helper template function for QVariantMapToPyObject/QVariantHashToPyObject More...
 

Static Protected Attributes

static QHash< int,
PythonQtConvertMetaTypeToPythonCB * > 
_metaTypeToPythonConverters
 
static QHash< int,
PythonQtConvertPythonToMetaTypeCB * > 
_pythonToMetaTypeConverters
 

Detailed Description

a static class that offers methods for type conversion

Definition at line 100 of file PythonQtConversion.h.

Member Function Documentation

static void* PythonQtConv::castWrapperTo ( PythonQtInstanceWrapper wrapper,
const QByteArray &  className,
bool &  ok 
)
static

cast wrapper to given className if possible

Referenced by PythonQtConvertPythonListToListOfKnownClass().

static bool PythonQtConv::ConvertPythonListToQListOfPointerType ( PyObject obj,
QList< void * > *  list,
const QByteArray &  type,
bool  strict 
)
staticprotected

tries to convert the python object to a QList of pointers to type objects, returns true on success

static void* PythonQtConv::ConvertPythonToQt ( const PythonQtMethodInfo::ParameterInfo info,
PyObject obj,
bool  strict,
PythonQtClassInfo classInfo,
void *  alreadyAllocatedCPPObject = NULL 
)
static

convert python object to Qt (according to the given parameter) and if the conversion should be strict (classInfo is currently not used anymore)

static PyObject* PythonQtConv::ConvertQListOfPointerTypeToPythonList ( QList< void * > *  list,
const QByteArray &  type 
)
staticprotected

converts the list of pointers of given type to Python

static PyObject* PythonQtConv::ConvertQtValueToPython ( const PythonQtMethodInfo::ParameterInfo info,
const void *  data 
)
static

converts the Qt parameter given in data, interpreting it as a info parameter, into a Python object,

static PyObject* PythonQtConv::ConvertQtValueToPythonInternal ( int  type,
const void *  data 
)
static

converts the Qt parameter given in data, interpreting it as a type registered qvariant/meta type, into a Python object,

Referenced by PythonQtConvertIntegerMapToPython(), PythonQtConvertListOfValueTypeToPythonList(), and PythonQtConvertPairToPython().

static QString PythonQtConv::CPPObjectToString ( int  type,
const void *  data 
)
static

get human readable string from CPP object (when the metatype is known)

static void* PythonQtConv::CreateQtReturnValue ( const PythonQtMethodInfo::ParameterInfo info)
static

creates a data storage for the passed parameter type and returns a void pointer to be set as arg[0] of qt_metacall

static PyObject* PythonQtConv::GetPyBool ( bool  val)
static

get a ref counted True or False Python object

static void* PythonQtConv::handlePythonToQtAutoConversion ( int  typeId,
PyObject obj,
void *  alreadyAllocatedCPPObject 
)
staticprotected

handle automatic conversion of some special types (QColor, QBrush, ...)

template<typename Map >
static PyObject* PythonQtConv::mapToPython ( const Map &  m)
staticprotected

helper template function for QVariantMapToPyObject/QVariantHashToPyObject

static bool PythonQtConv::PyObjGetBool ( PyObject val,
bool  strict,
bool &  ok 
)
static

get bool from py object

static QByteArray PythonQtConv::PyObjGetBytes ( PyObject val,
bool  strict,
bool &  ok 
)
static

get bytes from py object

static double PythonQtConv::PyObjGetDouble ( PyObject val,
bool  strict,
bool &  ok 
)
static

get double from py object

static int PythonQtConv::PyObjGetInt ( PyObject val,
bool  strict,
bool &  ok 
)
static

get int from py object

Referenced by PythonQtConvertPythonToIntegerMap().

static qint64 PythonQtConv::PyObjGetLongLong ( PyObject val,
bool  strict,
bool &  ok 
)
static

get int64 from py object

static QString PythonQtConv::PyObjGetRepresentation ( PyObject val)
static

get string representation of py object

static QString PythonQtConv::PyObjGetString ( PyObject val)
inlinestatic

get string value from py object

Definition at line 129 of file PythonQtConversion.h.

References PyObjGetString().

Referenced by PyObjGetString().

129 { bool ok; QString s = PyObjGetString(val, false, ok); return s; }
static QString PythonQtConv::PyObjGetString ( PyObject val,
bool  strict,
bool &  ok 
)
static

get string value from py object

static quint64 PythonQtConv::PyObjGetULongLong ( PyObject val,
bool  strict,
bool &  ok 
)
static

get int64 from py object

static QVariant PythonQtConv::PyObjToQVariant ( PyObject val,
int  type = -1 
)
static

convert python object to qvariant, if type is given it will try to create a qvariant of that type, otherwise it will guess from the python type

Referenced by PythonQtConvertPythonListToListOfValueType(), PythonQtConvertPythonToIntegerMap(), and PythonQtConvertPythonToPair().

static QStringList PythonQtConv::PyObjToStringList ( PyObject val,
bool  strict,
bool &  ok 
)
static

create a string list from python sequence

template<typename Map >
static void PythonQtConv::pythonToMapVariant ( PyObject val,
QVariant &  result 
)
staticprotected

helper template method for conversion from Python to QVariantMap/Hash

static PyObject* PythonQtConv::QStringListToPyList ( const QStringList &  list)
static

converts QStringList to Python list

static PyObject* PythonQtConv::QStringListToPyObject ( const QStringList &  list)
static

converts QStringList to Python tuple

static PyObject* PythonQtConv::QStringToPyObject ( const QString &  str)
static

converts QString to Python string (unicode!)

static PyObject* PythonQtConv::QVariantHashToPyObject ( const QVariantHash &  m)
static
static PyObject* PythonQtConv::QVariantListToPyObject ( const QVariantList &  l)
static
static PyObject* PythonQtConv::QVariantMapToPyObject ( const QVariantMap &  m)
static
static PyObject* PythonQtConv::QVariantToPyObject ( const QVariant &  v)
static

convert QVariant from PyObject

static void PythonQtConv::registerMetaTypeToPythonConverter ( int  metaTypeId,
PythonQtConvertMetaTypeToPythonCB cb 
)
inlinestatic

register a converter callback from cpp to python for given metatype

Definition at line 166 of file PythonQtConversion.h.

166 { _metaTypeToPythonConverters.insert(metaTypeId, cb); }
static void PythonQtConv::registerPythonToMetaTypeConverter ( int  metaTypeId,
PythonQtConvertPythonToMetaTypeCB cb 
)
inlinestatic

register a converter callback from python to cpp for given metatype

Definition at line 163 of file PythonQtConversion.h.

163 { _pythonToMetaTypeConverters.insert(metaTypeId, cb); }

Member Data Documentation

QHash<int, PythonQtConvertMetaTypeToPythonCB*> PythonQtConv::_metaTypeToPythonConverters
staticprotected

Definition at line 181 of file PythonQtConversion.h.

QHash<int, PythonQtConvertPythonToMetaTypeCB*> PythonQtConv::_pythonToMetaTypeConverters
staticprotected

Definition at line 182 of file PythonQtConversion.h.

PythonQtValueStorage<void*, 128> PythonQtConv::global_ptrStorage
static

Definition at line 177 of file PythonQtConversion.h.

PythonQtValueStorage<qint64, 128> PythonQtConv::global_valueStorage
static

Definition at line 176 of file PythonQtConversion.h.

PythonQtValueStorageWithCleanup<QVariant, 128> PythonQtConv::global_variantStorage
static

Definition at line 178 of file PythonQtConversion.h.


The documentation for this class was generated from the following file: