[PyKDE] Typecasting problems with PyQt embedded in Scribus

Giovanni Bajo rasky at develer.com
Thu Jun 30 23:11:50 BST 2005


Jim Bublitz <jbublitz at nwinternet.com> wrote:

>> But I wonder why the following does not work:
>> ptr = sip.unwrapinstance(qt.qApp.mainWidget())
>> mainWindow = sip.wrapinstance(ptr, qt.QMainWindow)
>> Unfortunately mainWindow is still a QWidget.
>
> I'm not sure - my guess is that it's because ptr is already typed in
> Python as a QWidget. I've done something similar to get a C++ object
> into Python, but the object was already the correct type - just
> instantiating the wrapper, but no cast involved.
>
> You might try:
>
>    mainWindow = sip.cast (ptr, qt.QMainWindow)


We just discussed this on the list. Phil is going to implement a general
solution so that you always get the most derived class Python knows about -- 
QMainWindow in this case.

Giovanni Bajo




More information about the PyQt mailing list