gpt4 book ai didi

python - 在 PyQt4 中使用 QThreadPool 和 QRunnable

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:52 28 4
gpt4 key购买 nike

考虑以下代码片段

class Worker(QtCore.QRunnable):
def __init__(self):
super(Worker, self).__init__()

def run(self):
print('Running Worker')

class Tasks(QtCore.QObject):
def __init__(self):
super(Tasks, self).__init__()
self.pool = QtCore.QThreadPool.globalInstance()
self.pool.setMaxThreadCount(2)

def start(self):
for task in range(3):
worker = Worker()
self.pool.start(worker)
self.pool.waitForDone()

def main():
prefix_path = os.environ['QGIS_PREFIX_PATH']
QgsApplication.setPrefixPath(prefix_path, True)
QgsApplication.initQgis()
tasks = Tasks()
tasks.start()

我收到以下错误

_original_runnable_init(self, *args, **kwargs)
TypeError: keyword arguments are not supported

创建 Worker 对象有什么问题?

最佳答案

不知道 QGis 初始化有什么问题,但以下代码在我的机器上按预期工作:

from PyQt4 import QtCore

class Worker(QtCore.QRunnable):
def __init__(self):
super(Worker, self).__init__()

def run(self):
print('Running Worker')

class Tasks(QtCore.QObject):
def __init__(self):
super(Tasks, self).__init__()
self.pool = QtCore.QThreadPool.globalInstance()
self.pool.setMaxThreadCount(2)

def start(self):
for task in range(3):
worker = Worker()
self.pool.start(worker)
self.pool.waitForDone()

if __name__ == '__main__':
tasks = Tasks()
tasks.start()

它给了我以下输出:

Running Worker
Running Worker
Running Worker

关于python - 在 PyQt4 中使用 QThreadPool 和 QRunnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30843876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com