之前学 python 时写了个爬虫。就是捉些商品的标题,介绍,价格,还有买家评论。 今天想学学 pyqt5,于是想直接给这爬虫加个 gui 好了。
运行后,主窗体无响应。 觉得可能是爬虫的问题,太耗时。
于是在 pyqt5 里的按钮方法里,加了个进程。 当点按钮时,打开一个新进程执行爬虫。 爬虫虽然能正常运行,但 gui 还是会无响应。
不明白这是怎么回事? 谢谢
class MyWindow(QMainWindow, Ui_MainWindow): def init(self, parent=None): super(MyWindow, self).init(parent) self.setupUi(self) self.pushButton_2.clicked.connect(self.aa)
def aa(self):
p = Process(target=pa)
p.start()
p.join()
if name == 'main': app = QApplication(sys.argv) m = MyWindow() m.show() sys.exit(app.exec_())
1
angel725 OP class MyWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None): super(MyWindow, self).__init__(parent) self.setupUi(self) self.pushButton_2.clicked.connect(self.aa) def aa(self): p = Process(target=pa) p.start() p.join() if __name__ == '__main__': app = QApplication(sys.argv) m = MyWindow() m.show() sys.exit(app.exec_()) 这样看清晰些 |
2
minami 2018-09-28 19:43:27 +08:00
join 会阻塞呀,所以 GUI 还在等工作进程执行完( ╯□╰ )
|
3
angel725 OP 还真是这样,去掉就好多了
|