Very nice, thanks
On Mon, Jul 11, 2011 at 5:57 PM, kungfuelmosan <[email protected]> wrote: > Ignore me, turns out we had an issue with the environment we were > building PySide in. So after a rebuild, the new Shiboken generated > bindings are working a treat so far, and with far less code too :) > Thanks again for all the help guys! > > Cheers, > D > > On Jul 2, 1:59 pm, kungfuelmosan <[email protected]> wrote: >> Ok so I've stopped trying to do the weird and wacky custom hand >> written Python C Extension and gone for the pure Shiboken generated >> module, as you guys suggested, which is much much nicer indeed. >> However I'm still seeing the same crash, although I think I might have >> narrowed it down further. It looks like it's failing when trying to >> produce a python wrapper for a C++ QWidget which is actually a C++ >> subclass of QWidget i.e: My module works fine and produces the correct >> results for pointers to 'raw' QWidget / QMenu / QCheckBox etc >> instances. >> >> So, I have a small repeatable test case, however its currently >> dependent on Maya 2012. I don't suppose you guys would have access to >> a copy to test my example on? >> >> Thanks a million again for the help! >> >> Cheers, >> Daniel >> >> On Jun 21, 10:37 am, kungfuelmosan <[email protected]> wrote: >> >> >> >> >> >> >> >> > Hey Renato, >> >> > Derived class? I'm not creating any new python types or anything I'm >> > literally just trying to take a C++ pointer to an existing QWidget and >> > return a PySide PyObject wrapper for that widget, to a python >> > instance : >> >> > PyObject * py_findControl_(PyObject *self, PyObject *args) { >> >> > // Parse Args >> > char *controlName; >> > PyObject *py_ancestor = NULL; >> > if (!PyArg_ParseTuple(args, "s|O", &controlName, &py_ancestor)) >> > return NULL; >> >> > QWidget *ancestor = NULL; >> > if (py_ancestor != NULL) >> > ancestor = Shiboken::Converter<QWidget*>::toCpp(py_ancestor); >> >> > // Find the named QWidget in maya >> > QWidget *control = MQtUtil::findControl(MString(controlName), >> > ancestor); >> >> > // Get PySide wrapper >> > PyObject *wrapper = >> > Shiboken::Converter<QWidget*>::toPython(control); >> >> > return wrapper; >> >> > } >> >> > I'll try and get a small repeatable test case together today. >> >> > On Jun 18, 12:37 am, Renato Araujo Oliveira Filho >> >> > <[email protected]> wrote: >> > > Did you check if you are calling the base constructor on your derived >> > > class? >> >> > > On Thu, Jun 16, 2011 at 9:02 PM, kungfuelmosan <[email protected]> >> > > wrote: >> > > > Yep, It should already be initialized by Maya on startup. >> >> > > > On Jun 17, 8:47 am, Hugo Parente Lima <[email protected]> wrote: >> > > >> On Thursday 16 June 2011 17:31:13 kungfuelmosan wrote: >> >> > > >> > Hey Hugo, >> >> > > >> > Yep I'm calling : >> >> > > >> > if (!Shiboken::importModule("PySide.QtCore", >> > > >> > &SbkPySide_QtCoreTypes)) { >> > > >> > PyErr_SetString(PyExc_ImportError,"could not import >> > > >> > PySide.QtCore"); >> > > >> > return; >> > > >> > } >> >> > > >> > if (!Shiboken::importModule("PySide.QtGui", >> > > >> > &SbkPySide_QtGuiTypes)) { >> > > >> > PyErr_SetString(PyExc_ImportError,"could not import >> > > >> > PySide.QtGui"); >> > > >> > return; >> > > >> > } >> >> > > >> > In my extension modules init function and I have these globally >> > > >> > defined in my .cc file aswell : >> >> > > >> > #include <pyside_qtgui_python.h> >> > > >> > PyTypeObject** SbkPySide_QtCoreTypes; >> > > >> > PyTypeObject** SbkPySide_QtGuiTypes; >> >> > > >> > Does that look right to you? >> >> > > >> Yes it does, nothing wrong. Did you call Py_Initialize() before all >> > > >> this? or >> > > >> the python interpreter was already initialized by someone? >> >> > > >> Regards. >> >> > > >> signature.asc >> > > >> < 1KViewDownload >> >> > > >> _______________________________________________ >> > > >> PySide mailing list >> > > >> [email protected]http://lists.pyside.org/listinfo/pyside >> > > > _______________________________________________ >> > > > PySide mailing list >> > > > [email protected] >> > > >http://lists.pyside.org/listinfo/pyside >> >> > > -- >> > > Renato Araujo Oliveira Filho >> > > Instituto Nokia de Tecnologia - INdT >> > > _______________________________________________ >> > > PySide mailing list >> > > [email protected]http://lists.pyside.org/listinfo/pyside >> >> > _______________________________________________ >> > PySide mailing list >> > [email protected]http://lists.pyside.org/listinfo/pyside >> >> _______________________________________________ >> PySide mailing list >> [email protected]http://lists.pyside.org/listinfo/pyside > _______________________________________________ > PySide mailing list > [email protected] > http://lists.pyside.org/listinfo/pyside > -- Renato Araujo Oliveira Filho Instituto Nokia de Tecnologia - INdT _______________________________________________ PySide mailing list [email protected] http://lists.pyside.org/listinfo/pyside
