给 Python 程序,用 pyqt5 加了 gui 但无响应

2018-09-28 19:03:17 +08:00
 angel725

之前学 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_())

2357 次点击
所在节点    问与答
3 条回复
angel725
2018-09-28 19:04:03 +08:00
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_())

这样看清晰些
minami
2018-09-28 19:43:27 +08:00
join 会阻塞呀,所以 GUI 还在等工作进程执行完( ╯□╰ )
angel725
2018-09-29 15:09:42 +08:00
还真是这样,去掉就好多了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/493606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX