QML 模態視窗,鎖定輸入層
阿新 • • 發佈:2018-11-20
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
.........
}