Qt 半透明QQuickWidget不';不要在窗户上画任何东西
我想创建一个没有父项的Qt 半透明QQuickWidget不';不要在窗户上画任何东西,qt,qml,Qt,Qml,我想创建一个没有父项的QQuickWidget,即窗口。我阅读了关于该文档的内容(关于QQuickWidget): 使用其他应用程序和 桌面在后台可见,是以传统方式完成的:设置 Qt::WA_半透明背景并更改Qt Quick Scenegraph的 通过setClearColor()清除Qt::transparent的颜色 以下是我编写的代码,它在Qt5.5.0+Mint17.0上运行良好,并带有运行时警告——“QQuickWidget:尝试在没有上下文的情况下渲染场景”。在Windows10+
QQuickWidget
,即窗口。我阅读了关于该文档的内容(关于QQuickWidget
):
使用其他应用程序和
桌面在后台可见,是以传统方式完成的:设置
Qt::WA_半透明背景并更改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"
}
}
//main.cpp
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
自动快速=新的QQuickWidget();
quick->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
快速->设置属性(Qt::WA_半透明背景,true);
quick->setClearColor(Qt::透明);
快速->设置源(QUrl(“qrc:/main.qml”);
快速->显示();
返回a.exec();
}
//main.qml
导入QtQuick 2.4
长方形{
身高:360
宽度:360
颜色:“透明”
正文{
文字:“你好”
}
}
view->setWindowOpacity(0.5)怎么样?在这种情况下使用QQuickWidget
有什么意义?我认为使用QML
创建窗口的更好方法是通过QQuickView
或qqqmlapplicationengine::load()
设置不透明度不起作用。我有一个C++小部件和一个QML小部件,我需要QML控件来一直保持在顶部。code>QQuickview似乎不支持raise()
@你能邮寄吗?我已经测试过了,不透明度对我来说很好,所以它需要一些额外的代码来测试。升级到Qt5.5.0后,一切都正常。然后我用Qt5.4.2构建了它,它变得可见,有点像wierd。