有哪些跨平台的C++ GUI框架具有良好的皮肤能力?
这样我就可以让用户自定义GUI。
有哪些跨平台的C++ GUI框架具有良好的皮肤能力?
这样我就可以让用户自定义GUI。
Qt框架允许使用样式表(使用css)来更改小部件的外观。请参见:http://qt-project.org/doc/qt-5.0/qtwidgets/stylesheet.html。
编辑:由于您正在寻找类似 wxSkin 的东西,那么为什么不首先使用它呢?
如果您不想使用 wxSkin,请查看 Juce。Qt 的目标当然不是可主题化的 GUI,尽管窗口掩模和样式表是实现它们的一种方式。在 Qt-Apps.org 上有一个名为 QSkingObject 项目,但上次我检查时发现代码质量很差(当然这是主观的和有争议的)。
您可以查看具有双重许可证的 Juce:GPL 和商业许可。
Qt(LGPL)具有样式表来设置小部件的样式,但它仍然让操作系统绘制窗口装饰,除非您指示它绘制无框窗口并自己绘制装饰。
但是,在转向皮肤应用程序路线之前,请三思而后行。一个典型的例子是使用 XUL 编写的 Songbird,它使用无框窗口,并绘制自己的标题栏和窗口按钮。然后,由于许多用户抱怨,他们退缩并切换回系统窗口装饰。
正如其他人所说,Qt的样式表非常有效。
您还可以通过重写QStyle来自定义Qt中的绘图。您可以允许用户使用插件(导出QStyle实现)使其超级可定制化。
(然后,我不知道您的用户是否是C++编码人员...)
我曾经在过去使用Juce(与Windows,Linux和Mac OS X兼容),它有一个LookAndFeel类(爱死这个名字了),可以让您做到这一点。
我会选择XULRunner,因为它非常容易进行皮肤定制。但是需要注意的是,它并不是纯C++编写的:应用程序代码使用JavaScript编写,而扩展可以作为C++ XPCOM组件实现。