Qt中的OS X透明面板?

Posted

技术标签:

【中文标题】Qt中的OS X透明面板?【英文标题】:OS X transparent panels in Qt? 【发布时间】:2010-08-25 17:04:58 【问题描述】:

有没有办法按照 Qt 4.6(为 OS X 10.6/Cocoa 构建)中的 Apple Human Interface Guidelines 所述创建透明面板?

如果没有,有没有外观和功能相似的替代品?

我了解 Qt 是一个跨平台工具包,但我希望我的应用程序尽可能“原生”。

【问题讨论】:

【参考方案1】:

我没有在 Mac 上尝试过,但这应该是可能的。 QWidget docs 是这样说的:

创建半透明窗口

从 Qt 4.5 开始,可以在支持合成的窗口系统上创建具有半透明区域的窗口。

要在***小部件中启用此功能,请将其Qt::WA_TranslucentBackground 属性设置为setAttribute(),并确保在您希望部分透明的区域中使用非透明颜色绘制其背景。

平台说明:

X11:此功能依赖于使用支持 ARGB 视觉效果的 X 服务器和合成窗口管理器。

Windows:小部件需要设置Qt::FramelessWindowHint 窗口标志才能使半透明工作。

我认为您的面板是***小部件,因此请确保按照上述说明设置 Qt::WA_TranslucentBackground

【讨论】:

感谢您的回答,但我真的在寻找一种方法来创建可可“透明面板”,如 Apple 人机界面指南的链接部分中所述/描述的那样。 我对 Mac 了解不多。你能解释一下两者的区别吗? 抱歉,我一定错过了您的回复。原始问题中链接的 Apple 人机界面指南的图 14-1 说明了差异。我还没有检查源代码,但恐怕 Qt 根本不支持这个依赖于平台的替代小部件集,因为我在文档中没有找到任何对它的引用。

以上是关于Qt中的OS X透明面板?的主要内容,如果未能解决你的问题,请参考以下文章

从 OS X 终端编译 Qt 示例的问题

作为 OS X 捆绑资源添加到 Qt 项目目录的内容

C++ 中的 OS X 全局快捷方式

Qt 5.4 - Mac OS X 10.6 支持

使用 Mac OS X 应用程序部署 Qt - 如何不加载任何插件?

Qt中的透明窗口