[PyQt] QMainWindow bug?

Antonio Valentino antonio.valentino at tiscali.it
Thu Jan 20 09:57:43 GMT 2011


Hi Nicola,

Il giorno Thu, 20 Jan 2011 10:22:55 +0100
Mailing List SVR <lists at svrinformatica.it> ha scritto:

> Ok, in a my pyqt app (I'm still using pyqt-4.7.x), I have a dialog
> that require much time to open so I keep a reference to it in a app
> global variable and I use this reference to reopen the dialog after
> the first time. This seems to work and the dialog open much quicker,
> however in some undeterminated cases I get:
> 
> RuntimeError: underlying C/C++ object has been deleted
> 
> when I get this error I recreate the dialog and update the global
> reference,
> 
> can you please explain the right way to keep a reference in python to
> a qt object?

One way could be to explicitly reset the global variable

global_dialog = None

before application shutdown (e.g in QMainWindow.closeEvent)

regards


> thanks
> NIcola
> 
> 
> Il giorno mer, 19/01/2011 alle 23.47 +0100, Erik Janssens ha scritto:
> > there was a change in sip/pyqt from 4.8.1 to 4.8.2 regarding
> > the detection of objects deleted by qt but still referenced in
> > python (which is the case here).  in 4.8.1 sip/pyqt tried to
> > detect this to avoid segfaults.  this detection however brought
> > other issues with it, therefor the detection was turned off again
> > in 4.8.2
> > 
> > the solution is not to keep references in python of objects
> > owned by qt when they might get deleted.
> > 
> > On Wed, Jan 19, 2011 at 12:36 PM, Mailing List SVR
> > <lists at svrinformatica.it> wrote:
> > > I can confirm the segfault:
> > >
> > > - linux, kernel 2.6.36
> > > - python 2.7.1
> > > - pyqt 4.8.2
> > > - qt 4.7.1
> > >
> > > works fine with PySide,
> > >
> > > Nicola
> > >
> > >
> > > Il giorno mer, 19/01/2011 alle 08.36 +0100, Vicent Mas ha scritto:
> > >> 2011/1/18 Nick Gaens <mail at nickgaens.com>:
> > >> > - Win7 64bit
> > >> > - Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500
> > >> > 32 bit (Intel)] on win32
> > >> > - Qt v4.7.0
> > >> > - PyQt GPL v4.8.1 for Python v2.6
> > >> > Result: no crashes, works like a charm..
> > >> >
> > >>
> > >> Hi,
> > >>
> > >> I get the crash also on Windows Vista 32bit (again Python 2.6
> > >> and PyQt 4.8.2)
> > >>
> > >> Vicent



-- 
Antonio Valentino


More information about the PyQt mailing list