前段时间我制作了一个脚本来记录用户的监视器帧,现在我正在尝试为它创建一个 GUI。目前它只有一个 START 和一个 STOP 按钮,但 STOP 按钮不会停止录制。
我怎样才能改变我的stop_thread功能让它工作?我应该先终止工人然后终止线程吗?我怎样才能终止工人?
import sys
from PyQt5.QtWidgets import (QWidget,
QPushButton, QApplication, QGridLayout)
from PyQt5.QtCore import QThread, QObject
class Worker(QObject):
def __init__(self, parent=None):
QObject.__init__(self, parent=parent)
def do_work(self):
i = 1
while True:
print(i)
QThread.sleep(1)
i = i + 1
def stop(self):
print("stopped")
self.deleteLater() # How do I stop it?
class Gui(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# Buttons:
self.btn_start = QPushButton('Start')
self.btn_start.resize(self.btn_start.sizeHint())
self.btn_start.move(50, 50)
self.btn_stop = QPushButton('Stop')
self.btn_stop.resize(self.btn_stop.sizeHint())
self.btn_stop.move(150, 50)
# GUI …Run Code Online (Sandbox Code Playgroud)