关于qt6 qtquick macos中的QML,移动矩形但留下透明的阴影框,否则界面背景是完全透明的

about qt6 qtquick QML in macos.move rectangle but leave transparent shadow box,otherwise the interface background is completely transparent

提问人:Jiang C 提问时间:11/17/2023 最后编辑:Jiang C 更新时间:11/17/2023 访问量:22

问:

首先,这张图是我创建的UI,在这里输入图片描述 下一张图片是移动矩形后在这里反向输入图片描述的UI,矩形移动但留下一个阴影与框架。 经过我的测试,只要在透明背景上使用动画移动矩形,就会出现这种现象。 这个效果不是我预想的。 否则,Windows没有这种现象,只有macOS有这种现象。

密钥代码将在下面显示。

c++
QGuiApplication app(argc,argv);
QQuickViewer viewer;
viewer.setColor(Qcolor(Qt::transparennt));
viewer.setFlag(Qt::FramelessWindowHint);
viewer.setFlag(Qt::WindowStaysOnTopHint);
viewer.setSource(QUrl("qrc:/QTQA-Creator/Main.qml"));
viewer.show();
qml

Rectangle {
    id: mainRectangle  
    objectName: "mainRectangle"
    width: 850
    height: 600
    color:Qt.rgba(0,0,0,0)

    Rectangle{
        id: mainPageRectangle   
        objectName: "mainPageRectangle"
        width: 770
        height: 600
        radius: 10
        gradient: Gradient {
            GradientStop { position: 0.0; color: Qt.rgba(220/255,42/255,214/255,0.6) }
            //GradientStop { position: 0.5; color: "green" }
            GradientStop { position: 1.0; color: Qt.rgba(80/255,30/255,247/255,0.6) }
        }
        Rectangle{
            id:ttes
            width: 50
            height: 50
            color: "yellow"
        }
    }
    PathAnimation {
        id: parabolaAnimation
        target: mainPageRectangle
        duration: 1000 
        path: Path {
            startX: 0; startY: 0 
            PathQuad {
                x: 20; y: 0 
                controlX: 100; controlY: 300
            }
            PathQuad {
                x: 50; y: 0 
                controlX: 300; controlY: 100
            }
        }
    }
    Component.onCompleted:{
        parabolaAnimation.start();
    

    }
}


这段代码在Windows中运行没有这个问题,macOS也有这个问题。

如果取消,也会显示此问题。viewer.setColor(Qcolor(Qt::transparennt));

我做了一些新的尝试。 将鼠标放在软框上,当图片按住并移动时,结果图片软框存在,但阴影和黑框不存在。

qtquick2 qt6

评论


答: 暂无答案