版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CLP_CSDNID/article/details/80318074
Qt 版本:5.10
Qt quick变成的时后有时需要弹出一些消息窗口或是认证窗口,只允许用户先确认窗口信息后才可以继续操作。这是就需要用到模态窗口。
再网上找了一些帖子(https://bbs.csdn.net/topics/390929479?page=1)说QML 没有模态窗口的概念,建议使用全局透明窗口加子控件的方式来实现。
最后查找了以下Qt 的官方文档,是有ApplicationModal状态的,但是再弹出窗口设置 modality:Qt.ApplicationModal 后,还是达不到模态的效果。
经过几次实践发现有 在导入库的时候,需要导入“QtQuick.Window 2.3”,而不是“QtQuick.Window 2.0”
主要设置:
import QtQuick 2.3
import QtQuick.Window 2.3
Window {
id: eo_askDialog
width: 300
height: 200
// width: Screen.desktopAvailableWidth
// height: Screen.desktopAvailableHeight
// x: Screen.desktopAvailableWidth/2
// y: Screen.desktopAvailableHeight/2
flags: Qt.FramelessWindowHint | Qt.Window | Qt.WindowStaysOnTopHint
modality: Qt.ApplicationModal
visible: true
.........
}