在我的代码(python2.6,PyQt4)中,我做了这样的事情:

def myRun():
    doStuff
thread = QtCore.QThread()
thread.run = myRun
thread.start()


在我的gentoo机器上,这非常有效。在ubunut(9.10,Karmic Koala)上,它不起作用,它说:
类型错误:myRun()不接受任何参数(给定1个)

QT有什么变化吗?如何在两台计算机上都可以完成这项工作?

谢谢!
内森

最佳答案

我不知道那是怎么工作的。您应该继承QThread并重写run()方法。 “不带参数”错误是因为QT运行时正在尝试将“自身”作为类方法的第一个参数传递。以下内容更接近您的需求:

def myThread(QtCore.QThread):
    def run(self):
        pass

thread = myThread()
thread.start()


更新:匹配原始的更多一点。

def myRun():
    doStuff

thread = QtCore.QThread()
thread.run = lambda self: myRun()
thread.start()

关于python - python QThread.run参数-版本之间更改了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3249845/

10-13 04:06