1. 程式人生 > >QML 模態視窗,鎖定輸入層

QML 模態視窗,鎖定輸入層

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

.........

}