python - PYQT5 杀死或终止 QThreads
问题描述
当我按下按钮时,线程 1 正在启动,当我按下按钮 2 时,我想杀死线程 1,但是尽管我为按钮 2(停止按钮)放置了“终止()”,但我无法杀死线程。它导致停止运行功能但没有完全杀死。我想在使用“终止”时不可能执行它。我该如何执行?
类线程1(QThread)
zaman1=pyqtSignal(int)
def run(self):
i1=0
while True:
i1+=1
time.sleep(1)
self.zaman1.emit(i1)
class Ui_MainWindow(object):
Pyt5代码......
def retranslateUi(self, MainWindow):
self.zaman_thread=thread1()
self.pushButton.clicked.connect(self.start1)
self.pushButton2.clicked.connect(self.stop)
def start1(self):
self.zaman_thread.zaman1.connect(self.zaman1_result)
self.zaman_thread.start()
def zaman1_result(self,val):
self.progressBar.setValue(val)
def stop(self):
self.zaman_thread.terminate()
如果name == " main ": import sys app = QtWidgets.QApplication(sys.argv) ex = Ui_MainWindow() w = QtWidgets.QMainWindow()
ex.setupUi(w)
w.show()
sys.exit(app.exec_())
解决方案
推荐阅读
- dialog - Microsoft Bot Framework 从对话框中的特定瀑布步骤开始对话
- html - 在页面上水平和垂直对齐 div 组
- html - 对齐表格 html 中的文本
- javascript - XLSX.utils.book_new() 不是函数错误
- deep-learning - 如何知道程序正在 Ubuntu 的 GPU 或 CPU 上执行?
- r - 如何在 R markdown 中插入 Latex 宏?
- java - 在布局完成之前 CoordinatorLayout 测量开始后不能更改锚点?
- html - 如何在“全屏”模式下提升 MIT Scratch 3 性能?
- http - 如何将 golang 中 http 响应的状态文本更改为 200 OK 到 200 {自定义文本}
- java-8 - 在java 8中转换基于for循环的索引