QML模态对话框Dialog关闭方式

Qt 版本:5.10

工作用到带确认按钮的提示框,确认前不允许其它交互,用Dialog设置modal即可实现。
但实践发现,当点到对话框外面,对话框就隐藏了,百度也没找到解决方法;
在这里插入图片描述

只好去看源码,结果发现有closePolicy这个属性,简单有效。没有什么是源码不能解决的~

\Qt\Qt5.10.0\5.10.0\Src\qtquickcontrols2\src\quicktemplates2\qquickpopup_p.h

	enum ClosePolicyFlag {
        NoAutoClose = 0x00,
        CloseOnPressOutside = 0x01,
        CloseOnPressOutsideParent = 0x02,
        CloseOnReleaseOutside = 0x04,
        CloseOnReleaseOutsideParent = 0x08,
        CloseOnEscape = 0x10
    };
    Q_DECLARE_FLAGS(ClosePolicy, ClosePolicyFlag)
    Q_FLAG(ClosePolicy)

    ClosePolicy closePolicy() const;
    void setClosePolicy(ClosePolicy policy);
    void resetClosePolicy();

所以只需要设置这个属性为NoAutoClose即可

Dialog{
    id:mainWindow
    visible: false
    modal: true
    closePolicy: Popup.NoAutoClose

参考致谢:
1、https://blog.csdn.net/zbw1185/article/details/78868311
2、https://blog.csdn.net/CLP_CSDNID/article/details/80318074
3、https://blog.csdn.net/u012199908/article/details/88861833

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值