<div dir="ltr"><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.80480194091797px;background-image:initial;background-repeat:initial">
I have to convert a QGIS plugin (2.2.0-Valmiera 32 bits) from a QDialog to a QDockWidget. While succeeding in doing the conversion (the plugin is now docked), the threads which are launched from the plugin do not work anymore. Any idea why this happens and how to solve this? Here is an example showing my problem using only a QPushButton that starts a thread:</p>
<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.80480194091797px;background-image:initial;background-repeat:initial">
First, my plugDockDialog.py file:</p><blockquote style="margin:0px 0px 10px;padding:10px 10px 1px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;quotes:none;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.80480194091797px;background:rgb(238,238,238)">
<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;clear:both;background:transparent"><code style="margin:0px;padding:1px 5px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:pre-wrap;background-image:initial;background-repeat:initial">class PlugDockDialog(QDockWidget, Ui_PlugDock):
     def __init__(self):
        QDockWidget.__init__(self, None)
        self.setupUi(self)</code></p></blockquote><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.80480194091797px;background-image:initial;background-repeat:initial">
and (the significant parts of) my plugDock.py file:</p><blockquote style="margin:0px 0px 10px;padding:10px 10px 1px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;quotes:none;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.80480194091797px;background:rgb(238,238,238)">
<p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;clear:both;background:transparent"><code style="margin:0px;padding:1px 5px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:pre-wrap;background-image:initial;background-repeat:initial">class PlugDock:
     def __init__(self, iface):
        self.iface = iface
        self.dlg = PlugDockDialog()
        self.iface.addDockWidget( Qt.RightDockWidgetArea, self.dlg )
        cmd = self.dlg.findChild(QPushButton,"cmdGo")
        cmd.clicked.connect(self.cmdGoClick)
     # Thread method
     @staticmethod
     def myfunc(i):
        time.sleep(3)
        print "Docking thread %d is finished..." % i
     # Click method
     def cmdGoClick(self):
        t = Thread(target=self.myfunc, args=(1,))
        t.start()</code></p></blockquote><p style="margin:0px 0px 1em;padding:0px;border:0px;font-size:13.333333969116211px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation Sans','DejaVu Sans',sans-serif;line-height:17.80480194091797px;background-image:initial;background-repeat:initial">
Thank you for your help!</p></div>