a smart pointer that stores a PyObject pointer and that handles reference counting automatically More...
#include <PythonQtObjectPtr.h>
Public Member Functions | |
| PythonQtObjectPtr () | |
| PythonQtObjectPtr (const PythonQtObjectPtr &p) | |
| PythonQtObjectPtr (const QVariant &variant) | |
| If the given variant holds a PythonQtObjectPtr, extract the value from it and hold onto the reference. This results in an increment of the reference count. | |
| PythonQtObjectPtr (PyObject *o) | |
| ~PythonQtObjectPtr () | |
| bool | fromVariant (const QVariant &variant) |
| If the given variant holds a PythonQtObjectPtr, extract the value from it and hold onto the reference. This results in an increment of the reference count. | |
| PythonQtObjectPtr & | operator= (const PythonQtObjectPtr &p) |
| PythonQtObjectPtr & | operator= (PyObject *o) |
| PythonQtObjectPtr & | operator= (const QVariant &variant) |
| bool | operator== (const PythonQtObjectPtr &p) const |
| bool | operator!= (const PythonQtObjectPtr &p) const |
| bool | operator== (PyObject *p) const |
| bool | operator!= (PyObject *p) const |
| bool | isNull () const |
| PyObject * | operator-> () const |
| PyObject & | operator* () const |
| operator PyObject * () const | |
| void | setNewRef (PyObject *o) |
| sets the object and passes the ownership (stealing the reference, in Python slang) | |
| PyObject * | object () const |
| QVariant | evalScript (const QString &script, int start=Py_file_input) |
| evaluates the given script code in the context of this object and returns the result value | |
| QVariant | evalCode (PyObject *pycode) |
| void | evalFile (const QString &filename) |
| evaluates the given code in the context | |
| void | addObject (const QString &name, QObject *object) |
add the given object to the module as a variable with name (it can be removed via clearVariable) | |
| void | addVariable (const QString &name, const QVariant &v) |
| add the given variable to the module | |
| void | removeVariable (const QString &name) |
| remove the given variable | |
| QVariant | getVariable (const QString &name) |
get the variable with the name of the module, returns an invalid QVariant on error | |
| QVariant | call (const QString &callable, const QVariantList &args=QVariantList()) |
| call the given python object (in the scope of the current object), returns the result converted to a QVariant | |
| QVariant | call (const QVariantList &args=QVariantList()) |
| call the contained python object directly, returns the result converted to a QVariant | |
Protected Member Functions | |
| void | setObject (PyObject *o) |
a smart pointer that stores a PyObject pointer and that handles reference counting automatically
Definition at line 51 of file PythonQtObjectPtr.h.
| PythonQtObjectPtr::PythonQtObjectPtr | ( | ) | [inline] |
Definition at line 54 of file PythonQtObjectPtr.h.
:_object(NULL) {}
| PythonQtObjectPtr::PythonQtObjectPtr | ( | const PythonQtObjectPtr & | p | ) | [inline] |
Definition at line 56 of file PythonQtObjectPtr.h.
References object().
| PythonQtObjectPtr::PythonQtObjectPtr | ( | const QVariant & | variant | ) | [inline] |
If the given variant holds a PythonQtObjectPtr, extract the value from it and hold onto the reference. This results in an increment of the reference count.
Definition at line 61 of file PythonQtObjectPtr.h.
:_object(NULL) {
fromVariant(variant);
}
| PythonQtObjectPtr::PythonQtObjectPtr | ( | PyObject * | o | ) | [inline] |
Definition at line 65 of file PythonQtObjectPtr.h.
{
_object = o;
if (o) Py_INCREF(_object);
}
| PythonQtObjectPtr::~PythonQtObjectPtr | ( | ) | [inline] |
Definition at line 70 of file PythonQtObjectPtr.h.
{ if (_object) Py_DECREF(_object); }
| void PythonQtObjectPtr::addObject | ( | const QString & | name, | |
| QObject * | object | |||
| ) |
add the given object to the module as a variable with name (it can be removed via clearVariable)
| void PythonQtObjectPtr::addVariable | ( | const QString & | name, | |
| const QVariant & | v | |||
| ) |
add the given variable to the module
| QVariant PythonQtObjectPtr::call | ( | const QString & | callable, | |
| const QVariantList & | args = QVariantList() | |||
| ) |
call the given python object (in the scope of the current object), returns the result converted to a QVariant
| QVariant PythonQtObjectPtr::call | ( | const QVariantList & | args = QVariantList() |
) |
call the contained python object directly, returns the result converted to a QVariant
| QVariant PythonQtObjectPtr::evalCode | ( | PyObject * | pycode | ) |
evaluates the given code and returns the result value (use Py_Compile etc. to create pycode from string) If pycode is NULL, a python error is printed.
| void PythonQtObjectPtr::evalFile | ( | const QString & | filename | ) |
evaluates the given code in the context
| QVariant PythonQtObjectPtr::evalScript | ( | const QString & | script, | |
| int | start = Py_file_input | |||
| ) |
evaluates the given script code in the context of this object and returns the result value
| bool PythonQtObjectPtr::fromVariant | ( | const QVariant & | variant | ) |
If the given variant holds a PythonQtObjectPtr, extract the value from it and hold onto the reference. This results in an increment of the reference count.
| QVariant PythonQtObjectPtr::getVariable | ( | const QString & | name | ) |
get the variable with the name of the module, returns an invalid QVariant on error
| bool PythonQtObjectPtr::isNull | ( | ) | const [inline] |
Definition at line 108 of file PythonQtObjectPtr.h.
{ return !object(); }
| PyObject* PythonQtObjectPtr::object | ( | ) | const [inline] |
Definition at line 124 of file PythonQtObjectPtr.h.
Referenced by operator=(), operator==(), and PythonQtObjectPtr().
{
return _object;
}
| PythonQtObjectPtr::operator PyObject * | ( | ) | const [inline] |
Definition at line 114 of file PythonQtObjectPtr.h.
{ return object(); }
| bool PythonQtObjectPtr::operator!= | ( | PyObject * | p | ) | const [inline] |
Definition at line 104 of file PythonQtObjectPtr.h.
{
return object() != p;
}
| bool PythonQtObjectPtr::operator!= | ( | const PythonQtObjectPtr & | p | ) | const [inline] |
Definition at line 96 of file PythonQtObjectPtr.h.
{
return !( *this == p );
}
| PyObject& PythonQtObjectPtr::operator* | ( | ) | const [inline] |
Definition at line 112 of file PythonQtObjectPtr.h.
{ return *( object() ); }
| PyObject* PythonQtObjectPtr::operator-> | ( | ) | const [inline] |
Definition at line 110 of file PythonQtObjectPtr.h.
{ return object(); }
| PythonQtObjectPtr& PythonQtObjectPtr::operator= | ( | const QVariant & | variant | ) | [inline] |
Definition at line 86 of file PythonQtObjectPtr.h.
{
fromVariant(variant);
return *this;
}
| PythonQtObjectPtr& PythonQtObjectPtr::operator= | ( | const PythonQtObjectPtr & | p | ) | [inline] |
Definition at line 75 of file PythonQtObjectPtr.h.
References object().
| PythonQtObjectPtr& PythonQtObjectPtr::operator= | ( | PyObject * | o | ) | [inline] |
Definition at line 80 of file PythonQtObjectPtr.h.
{
setObject(o);
return *this;
}
| bool PythonQtObjectPtr::operator== | ( | PyObject * | p | ) | const [inline] |
Definition at line 100 of file PythonQtObjectPtr.h.
{
return object() == p;
}
| bool PythonQtObjectPtr::operator== | ( | const PythonQtObjectPtr & | p | ) | const [inline] |
Definition at line 92 of file PythonQtObjectPtr.h.
References object().
| void PythonQtObjectPtr::removeVariable | ( | const QString & | name | ) |
remove the given variable
| void PythonQtObjectPtr::setNewRef | ( | PyObject * | o | ) | [inline] |
sets the object and passes the ownership (stealing the reference, in Python slang)
Definition at line 117 of file PythonQtObjectPtr.h.
{
if (o != _object) {
if (_object) Py_DECREF(_object);
_object = o;
}
}
| void PythonQtObjectPtr::setObject | ( | PyObject * | o | ) | [inline, protected] |
Definition at line 158 of file PythonQtObjectPtr.h.
{
if (o != _object) {
if (_object) Py_DECREF(_object);
_object = o;
if (_object) Py_INCREF(_object);
}
}
1.7.1