【问题标题】:Which C++ cross platform GUI framework has good skinning ability?哪个C++跨平台GUI框架的换肤能力好?
【发布时间】:2010-01-18 09:07:25
【问题描述】:

什么是具有良好换肤能力的跨平台C++ GUI框架?

所以我可以(并赋予用户)自定义 GUI 的能力。

【问题讨论】:

  • 当您想到“剥皮”时,您是否还想要非原生标题栏?

标签: c++ user-interface cross-platform themes skins


【解决方案1】:

Qt 框架允许使用样式表(使用 css)更改小部件的外观。请参阅:http://qt-project.org/doc/qt-5.0/qtwidgets/stylesheet.html

【讨论】:

    【解决方案2】:

    编辑:当您正在寻找类似wxSkin 的东西时,首先为什么不首先使用它?

    然后,如果您不想使用 wxSkin,请查看 Juce。 Qt 的目标绝对不是可主题化的 GUI,尽管窗口掩码和样式表是实现它们的一种方式。有QSkingObject project on Qt-Apps.org,但我上次检查时发现代码质量很差(当然这是主观和争论的)。


    您可以查看Juce,它具有双重许可证:GPL 和商业。

    Qt (LGPL) 有样式表来设置小部件的样式,但它仍然让操作系统绘制窗口装饰,除非您指示它绘制无框窗口并自己绘制装饰。

    但是,在采用蒙皮应用路线之前,请三思。一个典型的例子是Songbird(用 XUL 编写),它使用无框窗口并绘制了自己的标题栏和窗口按钮。然后在很多用户抱怨后,他们又退了回去,切换回系统窗口装饰。

    【讨论】:

    • 不要做它的接缝实验,我不知道它在生产中是否会很好
    • 嗯,至少Juce已经用在音乐软件中,实际上是在写tracktion的时候开发的
    【解决方案3】:

    Qt 通过Qt style sheets 等提供了方便的支持。 Qt 实验室博客有一个 example post 可能会给你一个想法。

    【讨论】:

      【解决方案4】:

      正如其他人所说,Qt 的样式表运行良好。

      您还可以选择通过覆盖 QStyle 来自定义 Qt 中的绘图。您可以允许用户使用插件(导出 QStyle 实现)使其超级可定制。

      (那么,我不知道你的用户是不是 C++ 程序员……)

      【讨论】:

        【解决方案5】:

        我过去使用过Juce(与Windows、Linux 和Mac OS X 兼容),它有一个LookAndFeel 类(一定很喜欢这个名字),可以让你这样做。

        【讨论】:

        • Java 也将其 UI 定制称为 LookAndFeel,因此这个名称是有先例的(尽管它可能很奇怪;)。
        【解决方案6】:

        我必须投票给XULRunner,因为它非常可以换肤。但是,它不是纯 C++:应用程序代码是用 JavaScript 编写的,而扩展可以实现为 C++ XPCOM 组件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-15
          • 2011-10-26
          相关资源
          最近更新 更多