PyQt5窗口模态与非模态

模态模式:子窗口阻塞父窗口的事件消息

非模态模式:子窗口不阻塞父窗口的事件消息

pyqt5中通过setWindowModality()来设置子窗口的模式,各种模式的取值及含义如下:

常量含义
Qt.NonModal0设置子窗口为非模态模式,这也是窗口的默认模式
Qt.WindowModal1设置子窗口为窗口模态,即阻塞父窗口、祖父窗口、祖..父窗口(通过一直self.parent()可以获取到的窗口)
Qt.ApplicationModal2设置子窗口为应用模态,即阻塞此应用下的所有窗口

在pyqt中,QWidget是一个部件而不是一个窗口,上面所说的模式对QWidget是无效的,所以如果一个窗口直接继承自QWidget,那么至少要给窗口设置一个Qt.Window(self.setWindowFlags(Qt.Window))使其成为一个真正的窗口才能适用于上面所说的模式设置,当然其他包含Qt.Window的flag也都是可以的。

在pyqt中,模态阻塞的只是窗口的事件消息,不会阻塞应用流程

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值