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