在使用PySide2的Qthread新建线程类后,在启动线程时,屏幕一直显示等待,不一会儿就显示python停止工作:
单独运行线程错误log:
Process finished with exit code -1073740791
启动线程的源代码如下:
a=myQThread()
a.setFunc(lambda:pr('i'))
a.start()
在网上找了好多参考,有的说内存溢出,并且很多都指向了tensorflow的训练问题,但我根本就没用这几个包啊!
后来自己仔细寻思了一下,QThread既然属于Pyside2的一个子包(也可以理解为一个控件),那么它是否需要寄托在一个基础控件上来实现其功能。而且Qthead的子类中的__init__()方法在自动生成的时候,继承父类的方法写法是这样的:super(myQThread, self).__init__(parent),内部有一个parent参数,也就是说它可能需要一个可以依托的载体(parent)控件,于是我就将线程的启动代码修改了一下:
a=myQThread(myWidget)
a.setFunc(lambda:pr('i'))
a.start()
程序居然可以正常运行了!
同时,作为myQThread的对象a,它有一个setParent()方法,同样可以设置载体(parent)控件,代码如下:
a=myQThread()
a.setFunc(lambda:pr('i'))
a.setParent(myWidget)
a.start()
这样的话,依然可以正常运行。