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

文章讨论了在使用Python的PYQT6和Flask开发服务端时,由于Flask的app.run命令在主线程中执行导致界面卡死的问题。作者提供了将Flask运行放入单独线程的解决方案,以保证PYQT界面的正常响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.问题起因

        做了个服务端, 使用到了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('停止运行')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值