【问题标题】:Menubar does not change colour菜单栏不改变颜色
【发布时间】:2022-01-07 08:07:07
【问题描述】:

我有以下简单的代码:

  m_menuBar = new wxMenuBar();
  m_menuBar->SetForegroundColour(*wxRED);
  m_menuBar->SetBackgroundColour(*wxGREEN);
  m_menuBar->SetOwnBackgroundColour(*wxYELLOW);

但是无论我在哪里设置这些颜色,我的菜单栏都不会显示它们。那么我做错了什么或者必须做什么才能让菜单栏和菜单以自定义颜色显示?

谢谢你:-)

【问题讨论】:

  • 你为什么要这个? wxWidgets 尽可能使用原生集合,我不认为菜单栏可以轻松更改颜色。可能可以通过菜单完成(查看 ownerdraw 示例),但我认为您不能通过菜单栏做到这一点。
  • @Igor 我必须解释为什么我想看其他颜色吗?审美原因可以解释吗?尽管如此:wxMenu 提供了这些功能,所以我希望它们能够工作。当不可能时:为什么这些功能存在?
  • wxMenu 可能有它们,但您正在尝试更改 wxMenuBar。看到不同?此外,您还必须考虑不同的主题,包括所谓的dark theme

标签: c++ wxwidgets


【解决方案1】:

不幸的是,即使wxMenuBar 确实派生自wxWindow,菜单栏也不是真正的窗口。这很令人困惑,但是即使无法实现,类之间的关系也会被保留以保持兼容性——特别是因为在 macOS 下(或在使用应用程序菜单的 Linux WM 下)无法更改菜单的颜色,因为例如,因此这些wxWindow-inherited 方法永远无法在此类中工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多