【发布时间】:2015-09-02 15:50:03
【问题描述】:
在 PyQt4 中,我想执行没有锁 gui 的代码。 我使用 QThread 并发出信号进行 gui 更新。 但是如果我在 QThread.run 中调用 cython 函数,gui 将被锁定。
class Runner(QtCore.QThread):
iter = QtCore.pyqtSignal(int)
def __init__(self):
QtCore.QThread.__init__(self)
def do_something(self):
beg = time.time()
s = 0.0
while time.time() - beg < 1:
s += math.sqrt(1000)
def run(self):
for it in xrange(10):
# no lock gui
#self.do_something()
# lock gui
cython_unit.do_something()
self.iter.emit(it + 1)
cython_unit.pyx:
import math
import time
def do_something():
beg = time.time()
s = 0.0
while time.time() - beg < 1:
s += math.sqrt(1000)
【问题讨论】:
标签: python user-interface pyqt cython qthread