出售本站【域名】【外链】

Pyqt5的QThead线程对象实现线程开始、暂停、恢复、结束

正文:

正在 PyQt5 中真现多线程同时对一个对象停行办理,可以运用 `QThread` 和 `QObject` 类。 首先,创立一个承继自 `QObject` 的类,该类卖力要被多线程办理的对象。正在该类中界说一个信号,用于线程办理完成后通知主线程,譬喻: ```python from PyQt5.QtCore import QObject, pyqtSignal class MyObject(QObject): finished = pyqtSignal() def __init__(self, parent=None): super().__init__(parent) def process(self): # 办理历程 self.finished.emit() ``` 接着,创立一个承继自 `QThread` 的类,该类卖力线程的创立、启动和完毕。正在该类中界说一个槽函数,用于办理 `MyObject` 对象。正在 `run` 办法中创立 `MyObject` 对象,并将其连贯到槽函数办理,譬喻: ```python from PyQt5.QtCore import QThread class MyThread(QThread): def __init__(self, parent=None): super().__init__(parent) def run(self): my_object = MyObject() my_object.finished.connect(self.finished) my_object.process() ``` 最后,正在主线程中创立 `MyThread` 对象,并挪用 `start` 办法启动线程,譬喻: ```python thread = MyThread() thread.finished.connect(app.quit) thread.start() app.eVec_() ``` 那样就可以真现多线程同时对一个对象停行办理了。留心,假如该对象是可变对象,须要加锁担保线程安宁。

2024-11-08 08:37  阅读量:82