PythonQt
|
a class that stores all required information about a Qt object (and an optional associated C++ class name) More...
#include <PythonQtClassInfo.h>
Classes | |
struct | ParentClassInfo |
store information about parent classes More... | |
Public Member Functions | |
PythonQtClassInfo () | |
~PythonQtClassInfo () | |
void | setupQObject (const QMetaObject *meta) |
setup as a QObject, taking the meta object as meta information about the QObject More... | |
void | setupCPPObject (const QByteArray &classname) |
setup as a CPP (non-QObject), taking the classname More... | |
void | setTypeSlots (int typeSlots) |
set the type capabilities More... | |
int | typeSlots () const |
get the type capabilities More... | |
PythonQtMemberInfo | member (const char *member) |
get the Python method definition for a given slot name (without return type and signature) More... | |
PythonQtSlotInfo * | constructors () |
get access to the constructor slot (which may be overloaded if there are multiple constructors) More... | |
PythonQtSlotInfo * | destructor () |
get access to the destructor slot More... | |
void | addConstructor (PythonQtSlotInfo *info) |
add a constructor, ownership is passed to classinfo More... | |
void | setDestructor (PythonQtSlotInfo *info) |
set a destructor, ownership is passed to classinfo More... | |
void | addDecoratorSlot (PythonQtSlotInfo *info) |
add a decorator slot, ownership is passed to classinfo More... | |
void | addNestedClass (PythonQtClassInfo *info) |
add a nested class, so that it can be shown as outer class member More... | |
const QByteArray & | className () const |
get the classname (either of the QObject or of the wrapped CPP object) More... | |
QByteArray | unscopedClassName () const |
get the unscoped classname (without ParentClass::) for nested classes More... | |
bool | isQObject () |
returns if the QObject More... | |
bool | isCPPWrapper () |
returns if the class is a CPP wrapper More... | |
const QMetaObject * | metaObject () |
get the meta object More... | |
void | setMetaObject (const QMetaObject *meta) |
set the meta object, this will reset the caching More... | |
bool | inherits (const char *classname) |
returns if this class inherits from the given classname More... | |
bool | inherits (PythonQtClassInfo *info) |
returns if this class inherits from the given classinfo More... | |
void * | castTo (void *ptr, const char *classname) |
QString | help () |
get help string for the metaobject More... | |
QStringList | propertyList () |
get list of all properties (on QObjects only, otherwise the list is empty) More... | |
QStringList | memberList () |
get list of all members (excluding properties, which can be listed with propertyList()) More... | |
int | metaTypeId () |
get the meta type id of this class (only valid for isCPPWrapper() == true) More... | |
void | setDecoratorProvider (PythonQtQObjectCreatorFunctionCB *cb) |
set an additional decorator provider that offers additional decorator slots for this class More... | |
QObject * | decorator () |
get the decorator qobject instance More... | |
void | addParentClass (const ParentClassInfo &info) |
add the parent class info of a CPP object More... | |
void | setPythonQtClassWrapper (PyObject *obj) |
set the associated PythonQtClassWrapper (which handles instance creation of this type) More... | |
PyObject * | pythonQtClassWrapper () |
get the associated PythonQtClassWrapper (which handles instance creation of this type) More... | |
void | setShellSetInstanceWrapperCB (PythonQtShellSetInstanceWrapperCB *cb) |
set the shell set instance wrapper cb More... | |
PythonQtShellSetInstanceWrapperCB * | shellSetInstanceWrapperCB () |
get the shell set instance wrapper cb More... | |
void | addPolymorphicHandler (PythonQtPolymorphicHandlerCB *cb) |
add a handler for polymorphic downcasting More... | |
void * | castDownIfPossible (void *ptr, PythonQtClassInfo **resultClassInfo) |
cast the pointer down in the class hierarchy if a polymorphic handler allows to do that More... | |
void | clearNotFoundCachedMembers () |
clear all members that where cached as "NotFound" More... | |
const QList< PythonQtClassInfo * > & | nestedClasses () |
get nested classes More... | |
PyObject * | copyObject (void *cppObject) |
PythonQtSlotInfo * | getCopyConstructor () |
Get the copy constructor for this class. More... | |
void | setReferenceCounting (PythonQtVoidPtrCB *refCB, PythonQtVoidPtrCB *unrefCB) |
Sets reference counting callbacks for this class and all its subclasses. More... | |
PythonQtVoidPtrCB * | referenceCountingRefCB () |
Returns the ref counting CB, if there is any. More... | |
PythonQtVoidPtrCB * | referenceCountingUnrefCB () |
Returns the unref counting CB, if there is any. More... | |
PyObject * | getPythonTypeForProperty (const QString &name) |
PythonQtClassInfo * | getClassInfoForProperty (const QString &name) |
Returns the class info for given property, if available. More... | |
bool | supportsRichCompare () |
Static Public Member Functions | |
static PyObject * | findEnumWrapper (const QByteArray &name, PythonQtClassInfo *localScope, bool *isLocalEnum=nullptr) |
returns if the localScope has an enum of that type name or if the enum contains a :: scope, if that class contails the enum More... | |
static QByteArray | escapeReservedNames (const QByteArray &name) |
static void | addGlobalNamespaceWrapper (PythonQtClassInfo *namespaceWrapper) |
Add a wrapper that contains global enums. More... | |
a class that stores all required information about a Qt object (and an optional associated C++ class name)
for fast lookup of slots when calling the object from Python
Definition at line 81 of file PythonQtClassInfo.h.
PythonQtClassInfo::PythonQtClassInfo | ( | ) |
PythonQtClassInfo::~PythonQtClassInfo | ( | ) |
void PythonQtClassInfo::addConstructor | ( | PythonQtSlotInfo * | info | ) |
add a constructor, ownership is passed to classinfo
void PythonQtClassInfo::addDecoratorSlot | ( | PythonQtSlotInfo * | info | ) |
add a decorator slot, ownership is passed to classinfo
|
static |
Add a wrapper that contains global enums.
void PythonQtClassInfo::addNestedClass | ( | PythonQtClassInfo * | info | ) |
add a nested class, so that it can be shown as outer class member
|
inline |
add the parent class info of a CPP object
Definition at line 177 of file PythonQtClassInfo.h.
|
inline |
add a handler for polymorphic downcasting
Definition at line 196 of file PythonQtClassInfo.h.
void* PythonQtClassInfo::castDownIfPossible | ( | void * | ptr, |
PythonQtClassInfo ** | resultClassInfo | ||
) |
cast the pointer down in the class hierarchy if a polymorphic handler allows to do that
void* PythonQtClassInfo::castTo | ( | void * | ptr, |
const char * | classname | ||
) |
casts the given ptr
to an object of type classname
, returns the new pointer which might be different to ptr
due to C++ multiple inheritance (if the cast is not possible or if ptr is NULL, NULL is returned)
const QByteArray& PythonQtClassInfo::className | ( | ) | const |
get the classname (either of the QObject or of the wrapped CPP object)
Referenced by PythonQtConvertListOfKnownClassToPythonList(), and PythonQtConvertPythonListToListOfKnownClass().
void PythonQtClassInfo::clearNotFoundCachedMembers | ( | ) |
clear all members that where cached as "NotFound"
PythonQtSlotInfo* PythonQtClassInfo::constructors | ( | ) |
get access to the constructor slot (which may be overloaded if there are multiple constructors)
PyObject* PythonQtClassInfo::copyObject | ( | void * | cppObject | ) |
Create a copy of the given C++ object (which is known to be of a derived class), wrapped by Python and owned by PythonQt. This will downcast if possible and return a copy of the down casted object. This either requires a copy constructor on the class or it needs to be registered as a meta type.
QObject* PythonQtClassInfo::decorator | ( | ) |
get the decorator qobject instance
PythonQtSlotInfo* PythonQtClassInfo::destructor | ( | ) |
get access to the destructor slot
|
static |
Sometimes enum values use a reserved name in Python. In this case replace it with something that is not reserved
|
static |
returns if the localScope has an enum of that type name or if the enum contains a :: scope, if that class contails the enum
PythonQtClassInfo* PythonQtClassInfo::getClassInfoForProperty | ( | const QString & | name | ) |
Returns the class info for given property, if available.
PythonQtSlotInfo* PythonQtClassInfo::getCopyConstructor | ( | ) |
Get the copy constructor for this class.
PyObject* PythonQtClassInfo::getPythonTypeForProperty | ( | const QString & | name | ) |
Returns the Python type object for a given property. (the returned object does not get an extra reference count)
QString PythonQtClassInfo::help | ( | ) |
get help string for the metaobject
bool PythonQtClassInfo::inherits | ( | const char * | classname | ) |
returns if this class inherits from the given classname
bool PythonQtClassInfo::inherits | ( | PythonQtClassInfo * | info | ) |
returns if this class inherits from the given classinfo
|
inline |
returns if the class is a CPP wrapper
Definition at line 139 of file PythonQtClassInfo.h.
|
inline |
returns if the QObject
Definition at line 136 of file PythonQtClassInfo.h.
PythonQtMemberInfo PythonQtClassInfo::member | ( | const char * | member | ) |
get the Python method definition for a given slot name (without return type and signature)
QStringList PythonQtClassInfo::memberList | ( | ) |
get list of all members (excluding properties, which can be listed with propertyList())
|
inline |
|
inline |
get the meta type id of this class (only valid for isCPPWrapper() == true)
Definition at line 168 of file PythonQtClassInfo.h.
|
inline |
get nested classes
Definition at line 208 of file PythonQtClassInfo.h.
QStringList PythonQtClassInfo::propertyList | ( | ) |
get list of all properties (on QObjects only, otherwise the list is empty)
|
inline |
get the associated PythonQtClassWrapper (which handles instance creation of this type)
Definition at line 183 of file PythonQtClassInfo.h.
PythonQtVoidPtrCB* PythonQtClassInfo::referenceCountingRefCB | ( | ) |
Returns the ref counting CB, if there is any.
PythonQtVoidPtrCB* PythonQtClassInfo::referenceCountingUnrefCB | ( | ) |
Returns the unref counting CB, if there is any.
void PythonQtClassInfo::setDecoratorProvider | ( | PythonQtQObjectCreatorFunctionCB * | cb | ) |
set an additional decorator provider that offers additional decorator slots for this class
void PythonQtClassInfo::setDestructor | ( | PythonQtSlotInfo * | info | ) |
set a destructor, ownership is passed to classinfo
void PythonQtClassInfo::setMetaObject | ( | const QMetaObject * | meta | ) |
set the meta object, this will reset the caching
|
inline |
set the associated PythonQtClassWrapper (which handles instance creation of this type)
Definition at line 180 of file PythonQtClassInfo.h.
void PythonQtClassInfo::setReferenceCounting | ( | PythonQtVoidPtrCB * | refCB, |
PythonQtVoidPtrCB * | unrefCB | ||
) |
Sets reference counting callbacks for this class and all its subclasses.
|
inline |
set the shell set instance wrapper cb
Definition at line 186 of file PythonQtClassInfo.h.
|
inline |
set the type capabilities
Definition at line 104 of file PythonQtClassInfo.h.
void PythonQtClassInfo::setupCPPObject | ( | const QByteArray & | classname | ) |
setup as a CPP (non-QObject), taking the classname
void PythonQtClassInfo::setupQObject | ( | const QMetaObject * | meta | ) |
setup as a QObject, taking the meta object as meta information about the QObject
|
inline |
get the shell set instance wrapper cb
Definition at line 191 of file PythonQtClassInfo.h.
bool PythonQtClassInfo::supportsRichCompare | ( | ) |
Returns if the class supports rich compare. This tests for eq, ne, lt, le, gt, ge slots and if any of the slots is present it returns true and modifies the _typeSlots with Type_RichCompare. The result is cached internally.
|
inline |
get the type capabilities
Definition at line 106 of file PythonQtClassInfo.h.
QByteArray PythonQtClassInfo::unscopedClassName | ( | ) | const |
get the unscoped classname (without ParentClass::) for nested classes