首页 > 解决方案 > 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_())

标签: pythonpyqtpyqt5qthread

解决方案


推荐阅读