【问题标题】:How to make a transparent window with Qt Quick 2.0如何使用 Qt Quick 2.0 制作透明窗口
【发布时间】:2012-12-10 04:18:28
【问题描述】:

我已经知道如何使用 Qt Quick 1.0 制作透明窗口。但是我最近开始使用 Qt 5.0 和 Qt Quick 2.0 并且不知道如何使用它。

设置属性 设置窗口标志 设置样式表

上述函数已从 QtQuick2ApplicationViewer(QQuickView) 中删除。 所以我想知道我是否可以用 Qt Quick 2 制作一个透明窗口 (是不是因为它是基于OpenGL的?)。

【问题讨论】:

    标签: qt window transparent qt5 qtquick2


    【解决方案1】:

    这是一个 Qt5 代码:

    QSurfaceFormat surfaceFormat;
    surfaceFormat.setAlphaBufferSize(8);
    viewer.setFormat(surfaceFormat);
    viewer.setClearBeforeRendering(true);
    viewer.setColor(QColor(Qt::transparent));
    

    【讨论】:

    • 效果很好!谢谢。另外,我使用'viewer.setFlags(Qt::CustomizeWindowHint);'来隐藏标题栏。但是当我点击透明区域时,它仍然响应事件。如何处理?
    • @XuHongxu 请参阅stackoverflow.com/a/4930925/721710 了解 Windows 解决方案...
    • @andrewrjones - 请再次检查,此解决方案适用于我在 OSX 10.9.1、Qt 5.1.1 上。这应该被标记为正确的解决方案。
    【解决方案2】:

    在这里寻找可能的解决方案:

    http://code.google.com/p/quickwidget/

    但是,通过Qt 5.3,可以使用内置的QQuickWidget 类。

    【讨论】:

    • 对不起,我在这个网站上没有找到任何东西。
    • @XuHongxu:签出或查看源代码!我什至写了一个例子。
    • 谢谢我找到了。它很有用!
    • 但是当我点击透明区域时,它仍然响应事件(我无法点击透明区域下的其他窗口)。如何处理?
    • 设置掩码(即调用setMask()),否则Qt不知道要通过哪些点击。
    猜你喜欢
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多