[PyQt] SIP bug with object lifetime
Giovanni Bajo
rasky at develer.com
Fri May 11 16:07:19 BST 2007
Hi Phil,
I've got another bug with object lifetimes:
=========================================
from qt import *
import weakref
app = QApplication([])
ql = QListView(None)
viewport = ql.viewport()
o = QObject(viewport)
o.xxx = viewport # bug-trigger!
destroyed = []
def cb(wr):
destroyed.append(1)
wr = weakref.ref(o, cb)
del o
del viewport
assert not destroyed, "object destroyed too early #1!"
import gc
gc.collect()
assert not destroyed, "object destroyed too early #2!"
del ql
import gc
gc.collect()
assert destroyed, "object never destroyed!"
=========================================
Traceback (most recent call last):
File "pyqtbug19.py", line 25, in ?
assert not destroyed, "object destroyed too early #2!"
AssertionError: object destroyed too early #2!
This happens with latest PyQt and SIP official releases (3.17.1 and
4.6). The line that seems to trigger the bug is the one marked with a
comment.
--
Giovanni Bajo
More information about the PyQt
mailing list