【发布时间】:2019-06-18 14:20:45
【问题描述】:
我有一个在 macOS 上运行的 Qt 应用程序。我找到了一种更改标题栏颜色的方法here,但是我想更进一步。我想模仿 Slack 和 Discord 应用程序使用的标题栏。例如:
如您所见,窗口中控件的颜色延伸到应用程序窗口的最顶部。我认为有两种方法可以完成我想要的:
-
我可以在上面粘贴的代码的基础上进行构建。浏览一些 Apple 开发人员文档,我想我可以在标题栏顶部创建一对
李>NsWindows,具有我想要的任何宽度,并将标题栏附加为这些窗口的父级。一旦我这样做了,我应该能够为每个人进行相同的backgroundColor()颜色调用。当然,这需要我跟踪控件或窗口何时调整大小并调整标题栏的NsWindows,我不确定可能会导致什么(如果有的话)问题。 也许有一种方法可以将标题栏的高度设置为
0?我想知道 Discord 应用是否正在这样做,因为:
如果您仔细观察,“查找或开始对话”的编辑框与关闭、最小化和最大化按钮垂直排列,“活动”标签也是如此。但是如果控件确实延伸到应用程序窗口的顶部,那么标准应用程序按钮是如何绘制的呢?
我很想知道 Slack 和 Discord 是如何做到这一点的,尽管我知道他们没有使用 Qt。
我意识到没有 Qt 解决方案,因为 Qt 不绘制标题栏。我知道这将是特定于操作系统的,但由于我没有任何使用 Objective-C++ 或使用 Cocoa 的实际经验(我在 macOS 上的所有编程经验都是标准 C++ 和非 UI 或基于 Qt 的代码)我'感谢任何建议或指导!
【问题讨论】: