如何使用Qt Quick 2.0制作一个透明窗口

4

我已经知道如何使用 Qt Quick 1.0 制作透明窗口。但我最近开始使用 Qt 5.0 和 Qt Quick 2.0,不知道该怎么做。

setAttribute、setWindowFlags、setStyleSheet 这些函数在 QtQuick2ApplicationViewer(QQuickView) 中被移除了。因此我想知道是否可以在 Qt Quick 2 中制作透明窗口(是否因为它是基于 OpenGL 的?)。

2个回答

4

这是一个Qt5代码示例:

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

它运行得很好!谢谢。 此外,我使用了“viewer.setFlags(Qt::CustomizeWindowHint);”来隐藏标题栏。但是当我点击透明区域时,它仍然响应事件。如何处理? - Hongxu Xu
@XuHongxu 请查看以下链接以获取Windows解决方案:https://dev59.com/vnNA5IYBdhLWcg3wX8rk#4930925 - Oleg Shparber
@andrewrjones - 请再次检查,这个解决方案在我的OSX 10.9.1,Qt 5.1.1上有效。应该将其标记为正确的解决方案。 - aaronsnoswell

1

抱歉,我在这个网站上找不到任何内容。 - Hongxu Xu
@XuHongxu:查看或查阅源代码吧!我甚至写了一个示例。 - user1095108
谢谢,我找到了。这很有用! - Hongxu Xu
但是当我点击透明区域时,它仍然响应事件(我无法点击其透明区域下的其他窗口)。如何处理? - Hongxu Xu
设置一个掩码(即调用setMask()),否则Qt不知道要通过哪些点击。 - user1095108

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接