[PyQt] Bug in QTableView.setModel()
hpj at urpla.net
Tue Jan 8 15:19:49 GMT 2008
First of all, happy new year, Phil & and PyQtnistas!
Am Dienstag, 8. Januar 2008 schrieb Phil Thompson:
> In C++ you should be managing the lifecycle of the model you create
> (either by giving it a parent or by keeping a pointer to it and deleting
> it when appropriate). The same applies in PyQt. If you don't do so then
> you have a bug in your code.
Aaron, please get used to it: PyQt is a _Qt_ binding, and we all profit from
the fact, that we're able to apply all major Qt concepts directly to PyQt
(apart from a few absolutely necessary deviations), which may have some
weaknesses, but in general that proved to be the most effective and
successful approach to _create_ and _use_ the leading toolkit available
today from our beloved programming language.. In this way, we get the best
from two distinct worlds.
If you want to change the concept in question, you either:
- convince Trolltech, that there concept is weak, and help them to find a
way to apply your approach in a backwards compatible way. Good luck.
- create a patch to PyQt, and prove to us, that you were able to keep
the behaviour apart from keeping the reference to the model. That means,
there's no loss of flexibility, no memory leak, etc.
> The difference is that in C++ the effect of
> the bug is a memory leak, but in PyQt it is often a crash.
This part is what bugs me, and surely caught every PyQt user in one or
another way. Is there a technically feasible way to warn a user about
loosing a python reference of an still existing Qt object, probably
controllable by a sip function.
More information about the PyQt