哪个C++跨平台GUI框架具有良好的皮肤能力?

4

有哪些跨平台的C++ GUI框架具有良好的皮肤能力?

这样我就可以让用户自定义GUI。


当你想到“换肤”时,是否也希望有非本地的标题栏? - Gregory Pakosz
6个回答

11

5

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

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


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

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

但是,在转向皮肤应用程序路线之前,请三思而后行。一个典型的例子是使用 XUL 编写的 Songbird,它使用无框窗口,并绘制自己的标题栏和窗口按钮。然后,由于许多用户抱怨,他们退缩并切换回系统窗口装饰。


不确定它是否适合生产环境,似乎还是实验性质的。 - user63898
好吧,至少Juce已经被用于音乐软件中,事实上它是在编写Tracktion时开发的。 - Gregory Pakosz

3

Qt通过Qt样式表等方式便捷地支持此功能。Qt实验室博客提供了一个示例文章,或许可以给您一些灵感。


2

正如其他人所说,Qt的样式表非常有效。

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

(然后,我不知道您的用户是否是C++编码人员...)


1

我曾经在过去使用Juce(与Windows,Linux和Mac OS X兼容),它有一个LookAndFeel类(爱死这个名字了),可以让您做到这一点。


Java也称其UI定制为LookAndFeel,因此该名称已经有先例(无论它可能有多奇怪)。 - Macke

1

我会选择XULRunner,因为它非常容易进行皮肤定制。但是需要注意的是,它并不是纯C++编写的:应用程序代码使用JavaScript编写,而扩展可以作为C++ XPCOM组件实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接