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.
1.7.1