PyQt5 Qthread,如何通过单击按钮停止或终止

时间:2019-12-17 17:27:47

标签: python qthread

我对python和pyqt非常陌生。

当我使用Qdesigner和Qthread时(非常有使用硒的过程) 我意识到我需要停止btn。

所以我查了两天。但还没有解决。 我发现并尝试过的是

将Stop btn连接到该插槽

@pyqtSlot()
def end_thread(self):
    self.WorkerA_1.stop()

并将其放入WorkerA_1 Qthread脚本

def stop(self):
    chromedriver = "C:/codes/Webdriver/chromedriver"
    driver = webdriver.Chrome(chromedriver)
    driver.quit()
    self.terminate()

它似乎终止了WorkerA_1,并且确实关闭了驱动程序。

但是这里有问题,

  1. 单击btn冻结GUI。
  2. 在关闭驱动程序之前,它会打开另一个驱动器并停留。即使我关闭GUI

对于问题1,我尝试制作新的Qthread以停止冻结GUI。 像这样

def run(self):
    chromedriver = "C:/codes/Webdriver/chromedriver"
    webdriver.Chrome(chromedriver).quit()
    self.WorkerA_1.stop()
如您所见,

我对python很陌生。 self.WorkerA_1.stop()无效。

它终止了WorkerA_1,但也打开了另一个驱动程序。

告诉我错误消息。

我相信将信号从A_thread发送到B_thread是另外一回事。

反正我想学的是

  1. 如何在运行期间通过单击btn终止或停止Qthread。
  2. 如何终止而不冻结GUI
  3. 当我关闭GUI时如何停止所有Qthread

如果您知道有什么可以帮助我的,请告诉我。谢谢

0 个答案:

没有答案