2

有人知道如何将 Qt::WidgetAttribute 转换为 Qt::WindowFlags 吗???并且通过转换我的意思是是否有任何像 WA_NoBackground 或 WA_TranslucentBackground 这样的 WidgetAttribute 作为 WindowFlags 的标志......???

我一直试图在 QML 中透明我的 ApplicationWindow 项目,但我做不到。

Main.Qml

import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Window 2.0

ApplicationWindow {
     title: qsTr("Hello World")
     width: 640
     height: 480
     flags: Qt.SubWindow | Qt.Tool | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
     opacity: 0.5
     Image {
           anchors.fill: parent
           source: "blah.png" // and this picture in transparent
     }
}

并且知道我正在寻找类似 WA_NoBackground 和 WA_TranslucentBackground 的标志

主文件

int main(int argc, char *argv[])
{
     Application app(argc, argv);

     QQmlApplicationEngine engine;
     engine.load(QUrl("blah.qml"));

     QObject *topLevel = engine.rootObjects().value(0);
     QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);

     window->show();
     window->setColor(Qt::transparent);

     return app.exec();
}
4

0 回答 0