Dne pondělí, 14. ledna 2013 1:05:33 UTC+1 Radek Holý napsal(a): > ad PyCharm: http://youtrack.jetbrains.com/issue/PY-4299?query=e > > -- > Radek > > > > > > > 2013/1/14 Radek Holý <radekho...@gmail.com> > > > > Zkusil jsem to v PyCharm (nikdy jsem tam ale debugger nezkousel) a na > breakpointech v konstruktoru Workerů se mi to zastaví, ale na breakpointech v > ``MyWorkerThread.run`` ne, takže PyCharm to asi také neumí... > > > > -- > Radek > > > > > > > > > > 2013/1/13 darkanry <richard....@freenet.de> > > > Stahl jsem si jednoduchy priklad pro praci s QThread. Priklad funguje bez > problemu, tak jsem ho zacal upravovat. Bohuzel jsem zjistil, ze to v PyDev > nejde ladit. Nevite nekdo jak na to? Kdyz to nejde s PyDev, jde to necim > jinym? > > > > > > Priklad: > > > > #import pydevd > > #pydevd.connected = True > > #pydevd.settrace() > > > > from PySide import QtCore > > > > import time, sys > > > > class MyWorkerThread(QtCore.QThread): > > message = QtCore.Signal(str) > > > > def __init__(self, id, parent=None): > > super(MyWorkerThread, self).__init__(parent) > > self.id = id > > > > def run(self): > > for i in range(10): > > self.message.emit("%d: %d" % (self.id, i)) > > time.sleep(0.2) > > > > class MainProgram(): > > def __init__(self, parent=None): > > self.threads = [] > > > > self.addWorker(MyWorkerThread(1)) > > self.addWorker(MyWorkerThread(2)) > > > > def addWorker(self, worker): > > worker.message.connect(self.printMessage, QtCore.Qt.QueuedConnection) > > # connect the finished signal to method so that we are notified > > worker.finished.connect(self.workersFinished) > > self.threads.append(worker) > > > > def startWorkers(self): > > for worker in self.threads: > > print worker.id > > worker.start() > > # no wait, no finished. you start the threads and leave. > > > > def workersFinished(self): > > if all(worker.isFinished() for worker in self.threads): > > # wait until all the threads finished > > QtCore.QCoreApplication.instance().quit() > > > > @QtCore.Slot(str) > > def printMessage(self, text): > > sys.stdout.write(text+'\n') > > sys.stdout.flush() > > > > if __name__ == '__main__': > > > > app = QtCore.QCoreApplication(sys.argv) > > m = MainProgram() > > m.startWorkers() > > sys.exit(app.exec_()) > > _______________________________________________ > > Python mailing list > > pyt...@py.cz > > http://www.py.cz/mailman/listinfo/python
Presne to stejny jsem nasel pro PyDev. Doporuceni je pouzit namisto QThread Thread z pythonu. Tim ale zase nemam vyreseny signaly a sloty, nebo jde i to nejak? _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python