internal PythonQt details More...
#include <PythonQt.h>
Public Types | |
enum | DecoratorTypes { StaticDecorator = 1, ConstructorDecorator = 2, DestructorDecorator = 4, InstanceDecorator = 8, AllDecorators = 0xffff } |
Public Member Functions | |
PythonQtPrivate () | |
~PythonQtPrivate () | |
const QStringList & | sharedLibrarySuffixes () |
get the suffixes that are used for shared libraries | |
bool | isPythonQtObjectPtrMetaId (int id) |
returns if the id is the id for PythonQtObjectPtr | |
void | addWrapperPointer (void *obj, PythonQtInstanceWrapper *wrapper) |
add the wrapper pointer (for reuse if the same obj appears while wrapper still exists) | |
void | removeWrapperPointer (void *obj) |
remove the wrapper ptr again | |
bool | addParentClass (const char *typeName, const char *parentTypeName, int upcastingOffset) |
add parent class relation | |
void | addPolymorphicHandler (const char *typeName, PythonQtPolymorphicHandlerCB *cb) |
add a handler for polymorphic downcasting | |
PythonQtClassInfo * | lookupClassInfoAndCreateIfNotPresent (const char *typeName) |
lookup existing classinfo and return new if not yet present | |
void | removeSignalEmitter (QObject *obj) |
called when a signal emitting QObject is destroyed to remove the signal handler from the hash map | |
PyObject * | wrapQObject (QObject *obj) |
wrap the given QObject into a Python object (or return existing wrapper!) | |
PyObject * | wrapPtr (void *ptr, const QByteArray &name) |
wrap the given ptr into a Python object (or return existing wrapper!) if there is a known QObject of that name or a known wrapper in the factory | |
void | registerClass (const QMetaObject *metaobject, const char *package=NULL, PythonQtQObjectCreatorFunctionCB *wrapperCreator=NULL, PythonQtShellSetInstanceWrapperCB *shell=NULL, PyObject *module=NULL, int typeSlots=0) |
registers a QObject derived class to PythonQt (this is implicitly called by addObject as well) | |
void | registerCPPClass (const char *typeName, const char *parentTypeName=NULL, const char *package=NULL, PythonQtQObjectCreatorFunctionCB *wrapperCreator=NULL, PythonQtShellSetInstanceWrapperCB *shell=NULL, PyObject *module=NULL, int typeSlots=0) |
void | registerQObjectClassNames (const QStringList &names) |
void | addDecorators (QObject *o, int decoTypes) |
add a decorator object | |
PythonQtClassWrapper * | createNewPythonQtClassWrapper (PythonQtClassInfo *info, PyObject *module) |
helper method that creates a PythonQtClassWrapper object (returns a new reference) | |
PythonQtInstanceWrapper * | createNewPythonQtInstanceWrapper (QObject *obj, PythonQtClassInfo *info, void *wrappedPtr=NULL) |
helper method that creates a PythonQtInstanceWrapper object and registers it in the object map | |
PythonQtClassInfo * | getClassInfo (const QMetaObject *meta) |
get the class info for a meta object (if available) | |
PythonQtClassInfo * | getClassInfo (const QByteArray &className) |
get the class info for a meta object (if available) | |
PythonQtObjectPtr | createModule (const QString &name, PyObject *pycode) |
creates the new module from the given pycode | |
PythonQtClassInfo * | currentClassInfoForClassWrapperCreation () |
get the current class info (for the next PythonQtClassWrapper that is created) and reset it to NULL again | |
void | handleVirtualOverloadReturnError (const char *signature, const PythonQtMethodInfo *methodInfo, PyObject *result) |
called by virtual overloads when a python return value can not be converted to the required Qt type | |
PythonQtObjectPtr | pythonQtModule () const |
get access to the PythonQt module | |
Static Public Member Functions | |
static PyObject * | createEnumValueInstance (PyObject *enumType, unsigned int enumValue) |
create a new instance of the given enum type with given value (returns a new reference) | |
static PyObject * | createNewPythonQtEnumWrapper (const char *enumName, PyObject *parentObject) |
helper that creates a new int derived class that represents the enum of the given name (returns a new reference) | |
static PyObject * | dummyTuple () |
the dummy tuple (which is empty and may be used to detected that a wrapper is called from internal wrapper creation | |
Friends | |
class | PythonQt |
internal PythonQt details
Definition at line 478 of file PythonQt.h.
StaticDecorator | |
ConstructorDecorator | |
DestructorDecorator | |
InstanceDecorator | |
AllDecorators |
Definition at line 486 of file PythonQt.h.
{ StaticDecorator = 1, ConstructorDecorator = 2, DestructorDecorator = 4, InstanceDecorator = 8, AllDecorators = 0xffff };
PythonQtPrivate::PythonQtPrivate | ( | ) |
PythonQtPrivate::~PythonQtPrivate | ( | ) |
void PythonQtPrivate::addDecorators | ( | QObject * | o, | |
int | decoTypes | |||
) |
add a decorator object
bool PythonQtPrivate::addParentClass | ( | const char * | typeName, | |
const char * | parentTypeName, | |||
int | upcastingOffset | |||
) |
add parent class relation
void PythonQtPrivate::addPolymorphicHandler | ( | const char * | typeName, | |
PythonQtPolymorphicHandlerCB * | cb | |||
) |
add a handler for polymorphic downcasting
void PythonQtPrivate::addWrapperPointer | ( | void * | obj, | |
PythonQtInstanceWrapper * | wrapper | |||
) |
add the wrapper pointer (for reuse if the same obj appears while wrapper still exists)
static PyObject* PythonQtPrivate::createEnumValueInstance | ( | PyObject * | enumType, | |
unsigned int | enumValue | |||
) | [static] |
create a new instance of the given enum type with given value (returns a new reference)
PythonQtObjectPtr PythonQtPrivate::createModule | ( | const QString & | name, | |
PyObject * | pycode | |||
) |
creates the new module from the given pycode
PythonQtClassWrapper* PythonQtPrivate::createNewPythonQtClassWrapper | ( | PythonQtClassInfo * | info, | |
PyObject * | module | |||
) |
helper method that creates a PythonQtClassWrapper object (returns a new reference)
static PyObject* PythonQtPrivate::createNewPythonQtEnumWrapper | ( | const char * | enumName, | |
PyObject * | parentObject | |||
) | [static] |
helper that creates a new int derived class that represents the enum of the given name (returns a new reference)
PythonQtInstanceWrapper* PythonQtPrivate::createNewPythonQtInstanceWrapper | ( | QObject * | obj, | |
PythonQtClassInfo * | info, | |||
void * | wrappedPtr = NULL | |||
) |
helper method that creates a PythonQtInstanceWrapper object and registers it in the object map
PythonQtClassInfo* PythonQtPrivate::currentClassInfoForClassWrapperCreation | ( | ) |
get the current class info (for the next PythonQtClassWrapper that is created) and reset it to NULL again
static PyObject* PythonQtPrivate::dummyTuple | ( | ) | [static] |
the dummy tuple (which is empty and may be used to detected that a wrapper is called from internal wrapper creation
PythonQtClassInfo* PythonQtPrivate::getClassInfo | ( | const QMetaObject * | meta | ) | [inline] |
get the class info for a meta object (if available)
Definition at line 558 of file PythonQt.h.
{ return _knownClassInfos.value(meta->className()); }
PythonQtClassInfo* PythonQtPrivate::getClassInfo | ( | const QByteArray & | className | ) | [inline] |
get the class info for a meta object (if available)
Definition at line 561 of file PythonQt.h.
{ return _knownClassInfos.value(className); }
void PythonQtPrivate::handleVirtualOverloadReturnError | ( | const char * | signature, | |
const PythonQtMethodInfo * | methodInfo, | |||
PyObject * | result | |||
) |
called by virtual overloads when a python return value can not be converted to the required Qt type
bool PythonQtPrivate::isPythonQtObjectPtrMetaId | ( | int | id | ) | [inline] |
returns if the id is the id for PythonQtObjectPtr
Definition at line 498 of file PythonQt.h.
{ return _PythonQtObjectPtr_metaId == id; }
PythonQtClassInfo* PythonQtPrivate::lookupClassInfoAndCreateIfNotPresent | ( | const char * | typeName | ) |
lookup existing classinfo and return new if not yet present
PythonQtObjectPtr PythonQtPrivate::pythonQtModule | ( | ) | const [inline] |
get access to the PythonQt module
Definition at line 576 of file PythonQt.h.
{ return _pythonQtModule; }
void PythonQtPrivate::registerClass | ( | const QMetaObject * | metaobject, | |
const char * | package = NULL , |
|||
PythonQtQObjectCreatorFunctionCB * | wrapperCreator = NULL , |
|||
PythonQtShellSetInstanceWrapperCB * | shell = NULL , |
|||
PyObject * | module = NULL , |
|||
int | typeSlots = 0 | |||
) |
registers a QObject derived class to PythonQt (this is implicitly called by addObject as well)
void PythonQtPrivate::registerCPPClass | ( | const char * | typeName, | |
const char * | parentTypeName = NULL , |
|||
const char * | package = NULL , |
|||
PythonQtQObjectCreatorFunctionCB * | wrapperCreator = NULL , |
|||
PythonQtShellSetInstanceWrapperCB * | shell = NULL , |
|||
PyObject * | module = NULL , |
|||
int | typeSlots = 0 | |||
) |
add a wrapper object for the given QMetaType typeName, also does an addClassDecorators() to add constructors for variants (ownership of wrapper is passed to PythonQt)
Make sure that you have done a qRegisterMetaType first, if typeName is a user type!
This will add a wrapper object that is used to make calls to the given classname typeName
. All slots that take a pointer to typeName as the first argument will be callable from Python on a variant object that contains such a type.
void PythonQtPrivate::registerQObjectClassNames | ( | const QStringList & | names | ) |
as an alternative to registerClass, you can tell PythonQt the names of QObject derived classes and it will register the classes when it first sees a pointer to such a derived class
void PythonQtPrivate::removeSignalEmitter | ( | QObject * | obj | ) |
called when a signal emitting QObject is destroyed to remove the signal handler from the hash map
void PythonQtPrivate::removeWrapperPointer | ( | void * | obj | ) |
remove the wrapper ptr again
const QStringList& PythonQtPrivate::sharedLibrarySuffixes | ( | ) | [inline] |
get the suffixes that are used for shared libraries
Definition at line 495 of file PythonQt.h.
{ return _sharedLibrarySuffixes; }
PyObject* PythonQtPrivate::wrapPtr | ( | void * | ptr, | |
const QByteArray & | name | |||
) |
wrap the given ptr into a Python object (or return existing wrapper!) if there is a known QObject of that name or a known wrapper in the factory
PyObject* PythonQtPrivate::wrapQObject | ( | QObject * | obj | ) |
wrap the given QObject into a Python object (or return existing wrapper!)
friend class PythonQt [friend] |
Definition at line 631 of file PythonQt.h.