Qt版 5.3.2
代码
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Window 2.2
ApplicationWindow {
id:root
visible: true
visibility:Window.FullScreen
color:"red"
Text
{
anchors.fill: parent
color:"white"
font.pixelSize: 32
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text:"Click to show modal child window"
}
MouseArea{
anchors.fill: parent
onClicked:childWindow.visible=!childWindow.visible
}
Window{
id:childWindow
visible:false
width:640
height:480
flags:Qt.Dialog
modality: Qt.ApplicationModal
title: "Modal child window"
Text
{
anchors.fill: parent
font.pixelSize: 32
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text:"Modal child window"
}
}
}
问题
通过单击鼠标区域显示模态子窗口时,父ApplicationWindow
变为透明。即使儿童模态窗口被解除,也不会显示ApplicationWindow
。
点击之前
点击后
如您所见,父窗口变得透明。仅显示模态子窗口。关闭子对话框会显示一个完全透明的窗口。再次单击屏幕上的任何区域将显示模式对话框。(因为onClicked:childWindow.visible=!childWindow.visible
)。这表明应用程序窗口存在但已变得透明。如何避免父窗口变得透明?
更新 当父窗口是透明的并且我切换到桌面(通过按Windows + D)并再次切换到应用程序时,父窗口的透明度将丢失,并且父窗口的背景(在这种情况下为红色)将再次显示。