[PyQt] QThread problem

Sergio Jovani lesergi at gmail.com
Mon Dec 8 00:53:37 GMT 2008


Hi all,

I'm developing a downloads application and I have created a QThread for that 
reason. I start the QThread with no problems, but when I try terminate it 
clicking on cancel pushbutton, I can't, application freezes. Thanks in 
advance. Here the code:

---

class MainWindow(QMainWindow):
	def __init__(self, parent = None):
		QMainWindow.__init__(self, parent)
		...
		self.pbCancel=QPushButton(self.tr("Cancel"))
		self.connect(self.pbCancel, SIGNAL("clicked()"), self.cancel)
		...
	def download(self):
		...
		self.threadDownload = Download(url, path, filename)
		self.threadDownload.start()

	def cancel(self):
		self.threadDownload.terminate()
		self.threadDownload.wait()

class Download(QThread):
	def __init__(self, url, path, filename, parent = None):
		QThread.__init__(self, parent)
		self.path=path
		self.url=url
		self.filename=filename

	def run(self):
		os.chdir(self.path)
		urllib.urlretrieve(self.url,self.filename,reporthook=self.myreporthook)


More information about the PyQt mailing list