【发布时间】:2010-01-18 09:07:25
【问题描述】:
什么是具有良好换肤能力的跨平台C++ GUI框架?
所以我可以(并赋予用户)自定义 GUI 的能力。
【问题讨论】:
-
当您想到“剥皮”时,您是否还想要非原生标题栏?
标签: c++ user-interface cross-platform themes skins
什么是具有良好换肤能力的跨平台C++ GUI框架?
所以我可以(并赋予用户)自定义 GUI 的能力。
【问题讨论】:
标签: c++ user-interface cross-platform themes skins
Qt 框架允许使用样式表(使用 css)更改小部件的外观。请参阅:http://qt-project.org/doc/qt-5.0/qtwidgets/stylesheet.html。
【讨论】:
编辑:当您正在寻找类似wxSkin 的东西时,首先为什么不首先使用它?
然后,如果您不想使用 wxSkin,请查看 Juce。 Qt 的目标绝对不是可主题化的 GUI,尽管窗口掩码和样式表是实现它们的一种方式。有QSkingObject project on Qt-Apps.org,但我上次检查时发现代码质量很差(当然这是主观和争论的)。
您可以查看Juce,它具有双重许可证:GPL 和商业。
Qt (LGPL) 有样式表来设置小部件的样式,但它仍然让操作系统绘制窗口装饰,除非您指示它绘制无框窗口并自己绘制装饰。
但是,在采用蒙皮应用路线之前,请三思。一个典型的例子是Songbird(用 XUL 编写),它使用无框窗口并绘制了自己的标题栏和窗口按钮。然后在很多用户抱怨后,他们又退了回去,切换回系统窗口装饰。
【讨论】:
Qt 通过Qt style sheets 等提供了方便的支持。 Qt 实验室博客有一个 example post 可能会给你一个想法。
【讨论】:
正如其他人所说,Qt 的样式表运行良好。
您还可以选择通过覆盖 QStyle 来自定义 Qt 中的绘图。您可以允许用户使用插件(导出 QStyle 实现)使其超级可定制。
(那么,我不知道你的用户是不是 C++ 程序员……)
【讨论】:
我过去使用过Juce(与Windows、Linux 和Mac OS X 兼容),它有一个LookAndFeel 类(一定很喜欢这个名字),可以让你这样做。
【讨论】:
我必须投票给XULRunner,因为它非常可以换肤。但是,它不是纯 C++:应用程序代码是用 JavaScript 编写的,而扩展可以实现为 C++ XPCOM 组件。
【讨论】: