PyQt QThreadPool error
h0uk
vardan.pogosyan at gmail.com
Thu Jan 7 16:33:24 EST 2010
On 8 янв, 02:25, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> h0uk schrieb:
>
>
>
> > On 8 янв, 01:02, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> >> h0uk schrieb:
>
> >>> Hello.
> >>> I have the following code:
> >>> #workers = {}
> >>> QtCore.QThreadPool.globalInstance().setExpiryTimeout
> >>> (300000)
> >>> QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
> >>> for i in range(1, int(userscnt) + 1):
> >>> work = wk.Worker(i)
> >>> # connect signals
> >>> work.mmShowCaptcha.connect(self.show_captcha_dlg)
> >>> work.log.connect(self.handle_log)
> >>> self.captcha_answer.connect(work.mmCaptchaAnswer)
> >>> work.setAutoDelete(True)
> >>> QtCore.QThreadPool.globalInstance().start(work)
> >>> On last line of code ( QtCore.QThreadPool.globalInstance().start
> >>> (work) ) i get an error:
> >>> SystemError: error return without exception set
> >>> What is wrong in my code??? Any advise???
> >> The error is on C-level. AFAIK it occurs when a Python-C-function
> >> returns "NULL" without setting an exception.
>
> >> It's hard to say where it really occurs. I'd use a debug-build of PyQt,
> >> and possibly Python, and then investigate using gdb.
>
> >> Alternatively, what happens when you do some "dummy"-work that doesn't
> >> use signals and no other libraries?
>
> >> Diez
>
> > About some "dummy" code:
>
> > #!/usr/bin/env python
> > # -*- coding: utf-8 -*-
>
> > import sys
> > import os
> > import time
>
> > from PyQt4 import QtCore, QtGui
>
> > class Job(QtCore.QRunnable):
> > def __init__(self, name):
> > QtCore.QRunnable.__init__(self)
> > self._name = name
>
> > def run(self):
> > time.sleep(10)
> > print self._name
>
> > def autoDelete(self):
> > return self._auto
>
> > def setAutoDelete(self, auto):
> > self._auto = auto
>
> > if __name__ == "__main__":
>
> > app = QtGui.QApplication(sys.argv)
>
> > QtCore.QThreadPool.globalInstance().setMaxThreadCount(1)
>
> > j = Job("Job-1")
> > j.setAutoDelete(True)
> > QtCore.QThreadPool.globalInstance().start(j)
>
> > Even this code not work. On the last line of code
> > ( QtCore.QThreadPool.globalInstance().start(j) ) i get the error:
>
> >>> An unhandled win32 exception occured in python.exe
>
> Hm. I suggest you take this to the PyQt mailinglist. Phil Thompson is
> very responsive.
>
> Diez
Thanks you, Diez. Thanks for your time.
I already wrote to PyQt mailing list, but yet no get answer.
I will be waiting and try to write Phil Thompson.
More information about the Python-list
mailing list