angel725
V2EX  ›  问与答

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

  •  
  •   angel725 · Sep 28, 2018 · 3491 views
    This topic created in 2961 days ago, the information mentioned may be changed or developed.

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

    3 replies  •  2018-09-29 15:09:42 +08:00
    angel725
    angel725
    OP
    Sep 28, 2018
    1
    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
    minami
    Sep 28, 2018
    2
    join 会阻塞呀,所以 GUI 还在等工作进程执行完( ╯□╰ )
    angel725
    angel725
    OP
    Sep 29, 2018
    3
    还真是这样,去掉就好多了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   907 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:32 · PVG 06:32 · LAX 14:32 · JFK 17:32
    ♥ Do have faith in what you're doing.