Thanks Sean, makes sense

On 17/12/13 08:33, Sean Fisk wrote:

Hi Frank,

The example that I provided Janwillem in his thread about QFileDialog shows two ways to wait for a thread: one by connect the thread’s |wait()| slot to QApplication’s |aboutToQuit| signal, the other by overriding |closeEvent()| on the main widget. Comments in the code explain the two approaches.

Hope this helps,



--
Sean Fisk


On Mon, Dec 16, 2013 at 2:28 PM, Frank Rueter | OHUfx <[email protected] <mailto:[email protected]>> wrote:

    ah, that makes perfect sense, thank you!


    On 17/12/13 02:54, Dan McCombs wrote:
    Hey Frank,

    I think the real reason you're getting that message isn't the
    subclassing piece, but that your program is exiting before the
    thread has finished. There's nothing in your application to keep
    it running after running the doIt method, so it exits, and
    destroys the thread. Normally you would have a QApplication
    instance and be calling the exec_ method on that after doIt to
    start your application's event loop and keep it running, until it
    was quit via some user interaction.

    -Dan

    Dyn logo, Dyn.com <http://dyn.com/> <http://twitter.com/dyn> Dyn
    facebook account <http://facebook.com/dyn> Dyn LinkedIn account
    <http://linkedin.com/company/dyn>

    Dan McCombs  / Senior Software Engineer
    603 296 1568 <tel:603%20296%201568> @danmccombs
    <http://twitter.com/danmccombs/>



    On Mon, Dec 16, 2013 at 2:01 AM, Frank Rueter | OHUfx
    <[email protected] <mailto:[email protected]>> wrote:

        Hi all,


        I am playing with simple QThread object and am getting the
        ol' "QThread:
        Destroyed while thread is still running" error.

        I have searched the web quite a bit now and keep running into
        examples
        that do exactly what I am doing, except it seems to work for
        others.
        Can somebody tell me where I'm going wrong with this bare
        bones examples
        please?

        Cheers,
        frank

        from PySide import QtCore
        import time

        class MyThread(QtCore.QThread):

             def __init__(self, parent=None):
                 super(MyThread, self).__init__(parent)

             def run(self):
                 for i in xrange(10):
                     print i
                     time.sleep(1)

        class MainApp(QtCore.QObject):

             def __init__(self, parent=None):
                 super(MainApp, self).__init__(parent)
                 self.thread = MyThread(self)

             def doIt(self):
                 self.thread.start()

        if __name__ == '__main__':
             a = MainApp()
             a.doIt()

        _______________________________________________
        PySide mailing list
        [email protected] <mailto:[email protected]>
        http://lists.qt-project.org/mailman/listinfo/pyside




    _______________________________________________
    PySide mailing list
    [email protected] <mailto:[email protected]>
    http://lists.qt-project.org/mailman/listinfo/pyside



_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

Reply via email to