一.问题起因
做了个服务端, 使用到了python的PYQT6和Flask, PYQT做的是个简单的设置界面:
但是在点击开始运行, 写入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('停止运行')