我想创建一个没有父级的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"
}
}