Flask与PyQt结合使用时候,阻塞,界面卡死

一.问题起因

        做了个服务端, 使用到了python的PYQT6和Flask, PYQT做的是个简单的设置界面:

Flask与PyQt结合使用时候,阻塞,界面卡死_第1张图片

但是在点击开始运行, 写入flask run的代码的时候, PYQT界面卡死了

代码如下: 

 # 生产环境模式
          server = make_server('0.0.0.0', ser_port, app)
          server.serve_forever()
          app.run()

二.问题产生的原因及解决方法

原因:

      Flask被激活后。如果为app.run命令指定了任何参数(即使是在线程中),则它会阻塞其他命令。

解决方式:

     给flask单独开个线程run:

 #结合PYQT的界面模式
                kwargs = {'host': '127.0.0.1', 'port': ser_port, 'threaded': True, 'use_reloader': False, 'debug': False}
                threading.Thread(target=app.run, daemon=True, kwargs=kwargs).start()
                self.lbl_status.setText('服务正在运行中')
                self.btn_start.setText('停止运行')

你可能感兴趣的:(Python,flask,pyqt,python)