在Windows 8.1上显示模式子窗口时,如何避免Qt快速父窗口变为透明?

时间:2015-04-05 13:34:15

标签: qt window windows-8.1 qml qt-quick

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

点击之前 enter image description here

点击enter image description here

如您所见,父窗口变得透明。仅显示模态子窗口。关闭子对话框会显示一个完全透明的窗口。再次单击屏幕上的任何区域将显示模式对话框。(因为onClicked:childWindow.visible=!childWindow.visible)。这表明应用程序窗口存在但已变得透明。如何避免父窗口变得透明?

更新 当父窗口是透明的并且我切换到桌面(通过按Windows + D)并再次切换到应用程序时,父窗口的透明度将丢失,并且父窗口的背景(在这种情况下为红色)将再次显示。

0 个答案:

没有答案