【问题标题】:QML Window opacity doesn't work when fullscreen全屏时QML窗口不透明度不起作用
【发布时间】:2014-06-21 09:56:17
【问题描述】:

我遇到了一个奇怪的问题:当 QML Window 全屏时,它的 opacity 属性不起作用,所以窗口保持不透明。当窗口不是全屏(例如最大化)时,它可以正常工作。

您对如何处理这个问题有任何想法吗? 事实上,我想动画全屏窗口淡入。

代码:

main.qml

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.1

Window {
    visible: true
    visibility: "FullScreen"

    opacity: 0.5

    Text {
        id: text
        text: "Hello World"
        font.pointSize: 36
        color: "#333"
    }
}

main.cpp

#include <QApplication>
#include <QQmlApplicationEngine>

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

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:///main.qml")));

    return app.exec();
}

我在 Windows 8.1 上使用 Qt 5.3。

【问题讨论】:

    标签: qt qml qt-quick


    【解决方案1】:

    这是 Qt/Win 组合的古老错误 - 带有 OpenGL 上下文的窗口,如果不使用诡计就无法透明。解决方案是将您的 QML 应用程序嵌入到 QQuickWidget 中,并使其透明且全屏。还有另一种解决方法(使用“DWM”API,它是不可移植的 - 您可以在错误描述中阅读它)。

    https://bugreports.qt.io/browse/QTBUG-28214

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2012-11-04
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多