[PyQt] PyQt 3.18.1 qApp.translate() issues since sip 4.11.1 (at least)

Hans-Peter Jansen hpj at urpla.net
Sun Oct 10 23:33:18 BST 2010


On Saturday 09 October 2010, 15:26:45 Phil Thompson wrote:
> On Thu, 7 Oct 2010 20:53:51 +0200, "Hans-Peter Jansen"
> >
> > Okay, here we go. It's bigger then I hoped, and does don't crash
> > reliable. It behaves fine most of the time, and the issue happens
> > at a random point, either immediately after start:
> >
> > Traceback (most recent call last):
> >   File "./testapp.py", line 49, in <module>
> >     win = TestWin()
> >   File "testwin.py", line 15, in __init__
> >     TestWinBase.__init__(self, parent, name, fl)
> >   File "testwinbase.py", line 43, in __init__
> >     self.languageChange()
> >   File "testwinbase.py", line 50, in languageChange
> >     self.setCaption(self.__tr("TestWin"))
> >   File "testwinbase.py", line 61, in __tr
> >     return qApp.translate("TestWinBase",s,c)
> > RuntimeError: underlying C/C++ object has been deleted
> >
> > or periodically during execution:
> >
> > $ LANG=de_DE ./testapp.py
> > Traceback (most recent call last):
> >   File "testwin.py", line 34, in statusTimeout
> >     qApp.mainWidget().statusBar().message(self.__tr(
> > RuntimeError: underlying C/C++ object has been deleted
> > Traceback (most recent call last):
> >   File "testwin.py", line 31, in statusTimeout
> >     qApp.mainWidget().staticMsg.setText(self.__tr("Running since:
> > %1") RuntimeError: underlying C/C++ object has been deleted
> > Traceback (most recent call last):
> >   File "testwin.py", line 31, in statusTimeout
> >     qApp.mainWidget().staticMsg.setText(self.__tr("Running since:
> > %1") RuntimeError: underlying C/C++ object has been deleted
> > Traceback (most recent call last):
> >   File "testwin.py", line 31, in statusTimeout
> >     qApp.mainWidget().staticMsg.setText(self.__tr("Running since:
> > %1") RuntimeError: underlying C/C++ object has been deleted
> >
> > Interacting with the "do nothing" menu item seems to contribute to
> > the problem, but again in elusive ways. This pretty much
> > constitutes a heisenbug, that it is. It happened also in both the
> > "de_DE" and the "C" locale, and it should appear within two dozen
> > tries..
> >
>
> Should be fixed in tonight's SIP snapshot.

Thanks to the snapshot builds, I've announced a short while ago, I'm 
able to test your current versions much more comfortable, which are:

Python version: 2.6
sip version: 4.11.2-snapshot-43c2359df596
Qt4 version: 4.6.3
PyQt4 version: snapshot-4.8-d3b4450b28c5

Although much harder to trigger with my testapp, it's not cured 
unfortunately. I'm still harvesting these beasts: 

$ ./testapp.py
Traceback (most recent call last):
  File "./testapp.py", line 54, in <module>
    qApp.mainWidget().statusBar().message(
RuntimeError: underlying C/C++ object has been deleted
$ ./testapp.py
Traceback (most recent call last):
  File "./testapp.py", line 49, in <module>
    win = TestWin()
  File "testwin.py", line 15, in __init__
    TestWinBase.__init__(self, parent, name, fl)
  File "testwinbase.py", line 43, in __init__
    self.languageChange()
  File "testwinbase.py", line 50, in languageChange
    self.setCaption(self.__tr("TestWin"))
  File "testwinbase.py", line 61, in __tr
    return qApp.translate("TestWinBase",s,c)
RuntimeError: underlying C/C++ object has been deleted

BTW, complex UI code seems to trigger it much more reliable.

Pete


More information about the PyQt mailing list