C++ 使用多种颜色为macOS中的标题栏着色

C++ 使用多种颜色为macOS中的标题栏着色,c++,qt,cocoa,titlebar,C++,Qt,Cocoa,Titlebar,我有一个运行在macOS上的Qt应用程序。我找到了一种改变标题栏颜色的方法,不过我想更进一步。我想模仿Slack和Discord应用程序使用的标题栏。例如: 如您所见,窗口中控件的颜色延伸到应用程序窗口的最顶部。我认为有两种方法可以实现我的目标: 我可以建立在上面粘贴的代码之上。翻阅一些Apple开发者文档,我想我可以在标题栏的顶部创建一对NsWindows,宽度任意,并将标题栏附加为这些窗口的父窗口。一旦我这样做了,我应该能够为每一个调用相同的backgroundColor()color。当

我有一个运行在macOS上的Qt应用程序。我找到了一种改变标题栏颜色的方法,不过我想更进一步。我想模仿Slack和Discord应用程序使用的标题栏。例如:

如您所见,窗口中控件的颜色延伸到应用程序窗口的最顶部。我认为有两种方法可以实现我的目标:

  • 我可以建立在上面粘贴的代码之上。翻阅一些Apple开发者文档,我想我可以在标题栏的顶部创建一对
    NsWindow
    s,宽度任意,并将标题栏附加为这些窗口的父窗口。一旦我这样做了,我应该能够为每一个调用相同的
    backgroundColor()
    color。当然,这需要我跟踪控件或窗口何时调整大小,并调整标题栏的
    NsWindow
    s,我不确定可能导致什么(如果有)问题

  • 也许有一种方法可以将标题栏的高度设置为
    0
    ?我想知道Discord应用程序是否就是这么做的,因为:

  • 如果仔细观察,显示“查找或启动对话”的编辑框垂直排列着“关闭”、“最小化”和“最大化”按钮,以及“活动”标签。但是,如果控件确实延伸到应用程序窗口的顶部,那么标准应用程序按钮是如何绘制的

    我很想知道懒散和不和谐是如何做到这一点的,尽管我知道他们没有使用Qt


    我意识到没有Qt解决方案,因为Qt没有绘制标题栏。我知道这将是OS特定的,但由于我没有任何Obje+C++或与COCOA的实际经验(我在Mac OS上的所有编程经验都是标准的C++,带有非UI或基于QT的代码),我会很感激任何建议或指导!p> 本机使用
    NSWindow的属性和。一旦将它们设置为
    true
    ,就可以在标题栏下方绘制或放置控件。

    谢谢!我可以通过以下方式实现我想要的:
    NSWindowStyleMask windowMask=NSWindowStyleMaskFullSizeContentView | NSWindowStyleMask无序| NSWindowStyleMask标题| NSWindowStyleMask可关闭| NSWindowStyleMask最小化|NSC的规模相当大;[窗口设置样式掩码:窗口掩码]