【问题标题】:Is it possible to change the appearance of top level menus in Qt?是否可以更改 Qt 中顶级菜单的外观?
【发布时间】:2012-04-27 21:02:09
【问题描述】:

我正在使用最新版本的 Qt,并注意到在 Windows 上,菜单以非常老式的方式呈现(类似于它们在其他跨平台应用程序上的外观,例如 Firefox)。我希望菜单渲染(颜色、渐变等)呈现出更现代的外观。是否可以在 Qt 中对菜单的呈现方式进行皮肤或修改?

【问题讨论】:

    标签: qt winapi qt4


    【解决方案1】:

    我不确定您使用的是哪个版本的 Qt 或 Windows,但在我安装了 Qt 4.8.1 的 Windows 7 计算机上,默认菜单看起来很正常,就像任何其他 Windows 7 菜单一样。

    要更改菜单的外观,您有两个广泛(简单)的选项:

    1. 使用QStyle 将其更改为不同的“原生”外观(使用QApplication::setStyle()QWidget::setStyle())。例如,您可以使它看起来像这样的 Windows XP 菜单:

      fileMenu->setStyle(new QWindowsXPStyle);
      
    2. 使用 Qt style sheets 自定义您希望如何呈现菜单。例如:

      fileMenu->setStyleSheet("background-color: red;");
      

    【讨论】:

    • 好的,但谁负责删除新的样式实例?那是在应用程序关闭期间执行此操作的 fileMenu 吗?还是您的回答造成了内存泄漏?
    • @987S 我不确定,但在我读过的文档和 Qt 书籍中都是这样做的。所以我 99% 确定菜单将拥有样式的所有权,并在适当的时候将其删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多