I found a way of getting Python extended widgets.<br>
<br>
I will post here the way I did and I would like to know if this is the right, easy and safer way of doing this:<br>
<br>
Supose this is a QWidget subclass and that I wrote a module called &quot;MyWidget.py&quot; with &quot;MyWidget&quot; class defined inside of it.<br>
<br>
<font style="font-family: courier new,monospace;" size="1">// let's assume that I've already created my QApplication in C++ code.<br>
SomeQWidgetClass::someMethod()<br>
{<br>
&nbsp;&nbsp;&nbsp; Py_Initialize();<br>
&nbsp;&nbsp;&nbsp; PyObject* __main__ = PyImport_AddModule(&quot;__main__&quot;);<br>
&nbsp;&nbsp;&nbsp; PyObject* scope = PyObject_GetAttrString(__main__, &quot;__dict__&quot;);&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp; PyRun_String(&quot;import sip&quot;, Py_single_input, scope, scope);<br>
&nbsp;&nbsp;&nbsp; PyRun_String(&quot;from PyQt4 import QtGui&quot;, Py_single_input, scope, scope);<br>
 &nbsp; &nbsp; PyRun_String(&quot;import MyWidget&quot;, Py_single_input, scope, scope);<br>
<br>
&nbsp;&nbsp;&nbsp; // passing this widget as parent<br>
&nbsp;&nbsp;&nbsp; QString cmd = QString(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;w = MyWidget.MyWidget(sip.wrapinstance(%1, QtGui.</font><font style="font-family: courier new,monospace;" size="1">SomeQWidgetClass</font><font style="font-family: courier new,monospace;" size="1">))&quot;<br>

&nbsp;&nbsp;&nbsp; ).arg((long)this);<br>
&nbsp;&nbsp;&nbsp; PyObject* w = PyRun_String(cmd.toStdString().c_str(), Py_single_input, scope, scope);<br>
&nbsp;&nbsp;&nbsp; if (!w) <br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PyErr_Print();<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; PyObject* id = PyRun_String(&quot;sip.unwrapinstance(w)&quot;, Py_eval_input, scope, scope);&nbsp;&nbsp; &nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp; QWidget* widget = (QWidget*) </font><font style="font-family: courier new,monospace;" size="1">PyLong_AsLong(id)</font><font style="font-family: courier new,monospace;" size="1">;<br>
&nbsp;&nbsp;&nbsp; layout()-&gt;addWidget(widget);<br>
&nbsp;&nbsp;&nbsp; widget-&gt;show();<br>
}<br>
<br>
</font>Another thing I am worried about is memory management. Is there
any special care that should I take with those Python created objects?<br>
<br>
Thanks,<br>
<br>
--<br>
Eric Jardim<br>