半透明的QQuickWidget不会在Windows上绘制任何内容

时间:2015-09-07 14:01:23

标签: qt qml

我想创建一个没有父级的QQuickWidget,即窗口。我读到了关于doc(关于QQuickWidget)的信息:

  

使窗口半透明,与其他应用程序和   桌面在后台可见,是以传统方式完成的:设置   Qt :: WA_TranslucentBackground并更改Qt Quick Scenegraph   通过setClearColor()清除Qt :: transparent的颜色。

这是我编写的代码,它在Qt5.5.0 + Mint17.0上运行正常,运行时警告 - “QQuickWidget:尝试渲染没有上下文的场景”。在Windows10 + Qt 5.4.2上运行时,它是完全透明的。

//main.cpp
#include <QApplication>
#include <QQuickWidget>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    auto quick = new QQuickWidget();
    quick->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);
    quick->setAttribute(Qt::WA_TranslucentBackground, true);
    quick->setClearColor(Qt::transparent);
    quick->setSource(QUrl("qrc:/main.qml"));
    quick->show();

    return a.exec();
}
//main.qml
import QtQuick 2.4

Rectangle {
    height: 360
    width: 360
    color: "transparent"
    Text{
        text: "hello"
    }
}

0 个答案:

没有答案