线程退出
This commit is contained in:
parent
d3f4e8f815
commit
bda63d85a9
4 changed files with 53 additions and 1 deletions
43
QThread/QuitThread.py
Normal file
43
QThread/QuitThread.py
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Created on 2020/11/27
|
||||||
|
@author: Irony
|
||||||
|
@site: https://pyqt.site https://github.com/PyQt5
|
||||||
|
@email: 892768447@qq.com
|
||||||
|
@file: QuitThread
|
||||||
|
@description:
|
||||||
|
"""
|
||||||
|
|
||||||
|
__Author__ = 'Irony'
|
||||||
|
__Copyright__ = 'Copyright (c) 2020'
|
||||||
|
__Version__ = 'Version 1.0'
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from time import time
|
||||||
|
|
||||||
|
from PyQt5.QtCore import QThread, QCoreApplication, QTimer
|
||||||
|
|
||||||
|
|
||||||
|
class Thread(QThread):
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
print('thread id', int(QThread.currentThreadId()))
|
||||||
|
i = 0
|
||||||
|
while i < 101 and not self.isInterruptionRequested():
|
||||||
|
print('value', i, time())
|
||||||
|
i += 1
|
||||||
|
QThread.msleep(500)
|
||||||
|
print('thread quit')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app = QCoreApplication(sys.argv)
|
||||||
|
t = Thread()
|
||||||
|
t.finished.connect(app.quit)
|
||||||
|
t.start()
|
||||||
|
# 3秒后退出
|
||||||
|
print('will quit 3s latter')
|
||||||
|
QTimer.singleShot(3000, t.requestInterruption)
|
||||||
|
sys.exit(app.exec_())
|
|
@ -5,6 +5,7 @@
|
||||||
- [moveToThread](#2moveToThread)
|
- [moveToThread](#2moveToThread)
|
||||||
- [线程挂起恢复](#3线程挂起恢复)
|
- [线程挂起恢复](#3线程挂起恢复)
|
||||||
- [线程休眠唤醒](#4线程休眠唤醒)
|
- [线程休眠唤醒](#4线程休眠唤醒)
|
||||||
|
- [线程退出](#5线程退出)
|
||||||
|
|
||||||
## 1、继承QThread
|
## 1、继承QThread
|
||||||
[运行 InheritQThread.py](InheritQThread.py)
|
[运行 InheritQThread.py](InheritQThread.py)
|
||||||
|
@ -35,3 +36,10 @@
|
||||||
使用 `QWaitCondition` 的 `wait` 和 `wakeAll` 方法
|
使用 `QWaitCondition` 的 `wait` 和 `wakeAll` 方法
|
||||||
|
|
||||||
![WakeupThread](ScreenShot/WakeupThread.gif)
|
![WakeupThread](ScreenShot/WakeupThread.gif)
|
||||||
|
|
||||||
|
## 5、线程退出
|
||||||
|
[运行 QuitThread.py](QuitThread.py)
|
||||||
|
|
||||||
|
`isInterruptionRequested` 和 `requestInterruption` 函数作为退出标识调用
|
||||||
|
|
||||||
|
![QuitThread](ScreenShot/QuitThread.jpg)
|
BIN
QThread/ScreenShot/QuitThread.jpg
Normal file
BIN
QThread/ScreenShot/QuitThread.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
|
@ -148,6 +148,7 @@ https://pyqt.site 论坛是专门针对PyQt5学习和提升开设的网站,分
|
||||||
- [moveToThread](QThread/moveToThread.py)
|
- [moveToThread](QThread/moveToThread.py)
|
||||||
- [线程挂起恢复](QThread/SuspendThread.py)
|
- [线程挂起恢复](QThread/SuspendThread.py)
|
||||||
- [线程休眠唤醒](QThread/WakeupThread.py)
|
- [线程休眠唤醒](QThread/WakeupThread.py)
|
||||||
|
- [线程退出](QThread/QuitThread.py)
|
||||||
|
|
||||||
- [QtQuick](QtQuick)
|
- [QtQuick](QtQuick)
|
||||||
- [Flat样式](QtQuick/FlatStyle.py)
|
- [Flat样式](QtQuick/FlatStyle.py)
|
||||||
|
|
Loading…
Reference in a new issue