【问题标题】:How to style a submenu item in Qt?如何在 Qt 中设置子菜单项的样式?
【发布时间】:2011-02-23 17:28:25
【问题描述】:

我想为具有不同子菜单的菜单项设置样式,以使该子菜单脱颖而出。但是样式被应用于子菜单中的菜单项,而不是单独设置子菜单项的样式。

Menu1
Menu2 -> menu21
          menu22
          menu23
Menu3

我只想设置 menu2 的样式,但 Qt 正在设置 menu21、menu22 和 menu23 的样式。

尝试了所有这些:

subMenu->setStyleSheet("QMenu{ font: bold }");
subMenu->setStyleSheet("QMenu::item{ font: bold }");
subMenu->setStyleSheet("QMenu::item#subMenu{ font : bold }");

Dynamic properties 也没有帮助,在与 subMenu 关联的操作上设置样式会导致 Qt 崩溃! :(

感谢您的宝贵时间,

高瑟姆

【问题讨论】:

  • 你能给我们看一些代码吗?这是带有 C++ 还是 Python 的 Qt?等等 。 .
  • @theJinx:我已经添加了我的代码(不工作)!它是 C++
  • 我发现,当使用动态属性时,您必须尽早设置属性以便样式表识别它。一旦样式表更改属性没有做任何事情(至少在 Qt 4.6

标签: c++ qt coding-style


【解决方案1】:

查看文档:

我没有对此进行测试,但理论上,您可以将 QMenu::item 与属性选择器或 ID 选择器一起使用(请参阅Qt Style Sheet Syntax - Selectors)。例如:

QMenu::item[text="Menu2 text"]

QMenu::item#menu2Id

虽然获取或设置 ID 可能很困难。

当然,除了 Qt 示例中所示的情况之外,不可能为 QMenu 条目设置单独的样式。

【讨论】:

  • 我试过文字,动态属性,还是不行。如何获取身份证?
【解决方案2】:

我会将此放在评论中,但我无权添加 cmets :-(

Daggerstab 提供的链接对我不起作用。这是另一个自定义 QMenu 的示例

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 2012-08-31
    • 2023-03-17
    • 2013-10-05
    • 1970-01-01
    • 2014-03-21
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多