首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >透明背景的QQuickWidget

透明背景的QQuickWidget
EN

Stack Overflow用户
提问于 2017-07-07 16:01:27
回答 4查看 2.1K关注 0票数 2

我在QDialog中添加了一个QQuickWidget来加载.qml,但是它的背景色是白色的。我的qml声明了一个Rectangle,它没有填充所有的QQuickWidget曲面。我需要没有填充的表面有相同的背景颜色的对话框。背景透明的方法是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-07 20:31:14

它在QQuickWidget文档中得到了解释: Limitations

将其他小部件放在下面并使QQuickWidget透明不会带来预期的结果:下面的小部件是不可见的。这是因为在实践中,QQuickWidget是在所有其他常规的、非OpenGL的小部件之前绘制的,所以看清楚类型的解决方案是不可行的。其他类型的布局,如在QQuickWidget上安装小部件,将如预期的那样工作。 当绝对必要时,可以通过在QQuickWidget上设置Qt::WA_AlwaysStackOnTop属性来克服这个限制。但是要注意,这破坏了堆叠顺序。例如,在QQuickWidget上不可能有其他小部件,所以它应该只在需要半透明的QQuickWidget和下面可见的其他小部件的情况下使用。

票数 1
EN

Stack Overflow用户

发布于 2020-12-01 00:16:32

浮云:

代码语言:javascript
复制
auto quickWidget = new QQuickWidget();
quickWidget->setWindowFlags(Qt::SplashScreen);
quickWidget->setAttribute(Qt::WA_AlwaysStackOnTop);
quickWidget->setAttribute(Qt::WA_TranslucentBackground);
quickWidget->setClearColor(Qt::transparent);
quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
quickWidget->setSource(QUrl("qrc:/cloud.qml"));
quickWidget->show();

cloud.qml

代码语言:javascript
复制
import QtQuick 2.0

Item {
    id: root
    width: 400
    height: 300
    Canvas {
        id: cloud
        anchors.fill: parent

        onPaint: {
            var ctx = getContext("2d");
            ctx.beginPath();
            var x = 100;
            var y = 170;
            ctx.arc(x, y, 60, Math.PI * 0.5, Math.PI * 1.5);
            ctx.arc(x + 70, y - 60, 70, Math.PI * 1, Math.PI * 1.85);
            ctx.arc(x + 152, y - 45, 50, Math.PI * 1.37, Math.PI * 1.91);
            ctx.arc(x + 200, y, 60, Math.PI * 1.5, Math.PI * 0.5);
            ctx.moveTo(x + 200, y + 60);
            ctx.lineTo(x, y + 60);
            ctx.strokeStyle = "#797874";
            ctx.stroke();
            ctx.fillStyle = "#8ED6FF";
            ctx.fill();
        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2017-07-07 16:18:54

使用QQuickWidget::setClearColor(Qt::transparent)并通过setFormat调用设置alpha通道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44975226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档