QML Popup,屏蔽其他控件,使除了Popup控件的其他控件不再响应

Posted smartvxworks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QML Popup,屏蔽其他控件,使除了Popup控件的其他控件不再响应相关的知识,希望对你有一定的参考价值。

实现效果:

QML Popup,屏蔽其他控件,使除了Popup控件的其他控件不再响应

策略:

1.让Popup 全屏化展示

width: 1024; height: 768;    //因为我的屏幕就是1024*768分辨率的,所以此时Popup  是全屏显示的,其他控件都在下方,是点不到的

2.背景透明化

background:transparent  // 这里让Popup   的背景透明化,所以其下面的控件是可以看到的,但是是操作不到的

3.设置点击属性

closePolicy :Popup.CloseOnEscape    Popup.CloseOnEscape点击了弹出窗口之外,则点击位置该弹出窗口下方的任何其他层组件,Popup弹窗都不会关闭

4.然后就可以在Popup 里面添加文本框和按钮了,具体见下面代码:

代码实现:

        Popup   //弹出提示框,告知用户照片删除成功
        {
            id: removePicturePopup
            //width: 250; height: 150
            width: 1024; height: 768;                //Popup全屏显示,使下面的控件不可响应,就是点击Popup弹窗其他位置的控件,不进行响应
            background:transparent
            x: picture_Scan_B_Area.width/2-width/2;
            y:picture_Scan_B_Area.height/2-height/2;
            modal:false
            closePolicy :Popup.CloseOnEscape   //Popup.CloseOnEscape点击了弹出窗口之外,则点击位置该弹出窗口下方的任何其他层组件,Popup弹窗都不会关闭,模态弹出窗口通常只有在按下退出键时才会关闭,Popup.CloseOnReleaseOutsideParent当鼠标在其父级之外释放时,弹出窗口将关闭
            Rectangle
            {
                id: removePicturePopupRectangle
                width: 250; height: 150
                x: removePicturePopup.width/2-width/2-30;
                y: removePicturePopup.height/2-height/2;

                Text
                {
                    id:removePicturePopupRectangleText
                    x: removePicturePopupRectangle.width/2-width/2;
                    y: removePicturePopupRectangle.height/2-height/2-30;
                    font.pixelSize: 16
                    text: qsTr("确认是否删除照片?");
                }
                Row
                {
                    x: removePicturePopupRectangle.width/2-width/2;
                    y: removePicturePopupRectangle.height/2-height/2+30
                    spacing: 20
                    Button
                    {
                        text: qsTr("是")
                        font.pixelSize: 16
                        onPressed:
                        {
                            console.log("Popup Button 0")
                            GetDirAllImageLib.deleteFileOrFolder(picture_Scan_D_Area.pictureList[picture_Scan_D_Area.pictureIndex]);  //删除指定文件
                            picture_Scan_B_Area.deleteImage(picture_Scan_D_Area.pictureIndex);  //为了照片缩略图的加载显示
                            removePicturePopup.close();
                        }
                    }
                    Button
                    {
                        text: qsTr("否")
                        font.pixelSize: 16
                        onPressed:
                        {
                            console.log("Popup Button 1")
                            removePicturePopup.close();
                        }
                    }
                }
            }
        }

以上是关于QML Popup,屏蔽其他控件,使除了Popup控件的其他控件不再响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QML 中动态创建 Popup

QML Popup Overlay.modal 过渡不起作用

QT Quick QML 实例之 Popup 弹出界面

QT Quick QML 实例之 Popup 弹出界面

QT Quick QML 实例之 Popup 弹出界面

QT Quick QML 实例之 Popup 弹出界面