【发布时间】:2015-04-23 14:15:12
【问题描述】:
一个 gui 有一个启动按钮,它在线程中启动一个爬虫,以便 gui 可以更新它的发现。如何让我的停止按钮停止抓取线程?
class Scrape:
def __init__(self):
#commence scraping the web
class Gui:
def __init__(self):
super(Gui, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
#events
self.ui.start.clicked.connect(self.start_scraper)
self.ui.stop.clicked.connect(self.stop_scraper)
def start_scraper(self):
self.browse = threading.Thread(target=Scrape)
def stop_bot(self) -> None:
raise SystemExit
【问题讨论】:
-
虽然该线程不处理 GUI...
-
听起来你需要让你的工作线程(scraper)监听消息队列。所以你的gui线程可以告诉它退出。这篇文章可能对eli.thegreenplace.net/2011/12/27/…有帮助。抱歉,我没有时间制定答案。
-
保罗,没问题。非常感谢任何类型的帮助,无论它是否只是指向可能的解决方案。谢谢
标签: python multithreading user-interface selenium-webdriver pyqt