angel725
V2EX  ›  问与答

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

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