[PySide] Fwd: Creating and deleting instances of QApplication within unit tests
Matthew Woehlke
matthew.woehlke at kitware.com
Fri Oct 25 22:09:46 CEST 2013
On 2013-10-25 15:13, Dan McCombs wrote:
> I've been struggling with unit testing my PySide application. My tests run
> fine, but if I have more than one test, Python segfaults on quit. It seems
> the solution would be to destroy/create the QApplication instance on each
> test run, as I've seen people mentioning in the case of PyQT such as:
>
> http://stuvel.eu/blog/127/multiple-instances-of-qapplication-in-one-process
>
> I've tried doing something similar in PySide with the following lines in my
> setUp for each test:
>
> QtGui.qApp = QtGui.QApplication([])
Um... this wouldn't work in C++, and I rather suspect it's not the right
way to go about it in Python either.
In C++, qApp is an alias for QApplication::instance(). I believe the
case for Python is similar. Probably when you assign to QtGui.qApp in
Python you are replacing the convenience accessor with a reference to
your own instance, which does nothing to actually get rid of the
QApplication instance.
Normally you should just construct a QApplication instance and assign it
to some variable.
Did you try this?
app = QtGui.QApplication([])
...
delete app
--
Matthew
More information about the PySide
mailing list