pyside6的QThread中,如果不重写run方法,应该怎么执行自己写的方法
时间: 2024-05-08 20:20:06 浏览: 211
在 pyside6 的 QThread 中,可以通过创建一个 QObject 对象,然后将自己写的方法通过信号和槽的方式连接到这个 QObject 对象中的某个槽函数。然后,再将该 QObject 对象移动到 QThread 对象所在的线程中。这样做的好处是可以将多个方法放在一个对象中,实现线程安全,避免了多个线程同时访问同一个类的属性或方法的问题。具体实现方式可以参考以下代码示例:
```python
from PySide6 import QtCore
class MyObject(QtCore.QObject):
finished = QtCore.Signal()
def __init__(self):
super().__init__()
def my_method(self):
# 执行自己的方法
pass
class MyThread(QtCore.QThread):
def __init__(self):
super().__init__()
self.obj = MyObject()
self.obj.moveToThread(self)
self.obj.finished.connect(self.quit)
def run(self):
self.obj.my_method()
self.obj.finished.emit()
# 使用方式示例:
thread = MyThread()
thread.start()
thread.wait()
```
阅读全文