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

时间:2010-01-18 09:07:26

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

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

所以我可以(并且让用户)能够自定义GUI。

6 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:5)

编辑:当你正在寻找类似wxSkin之类的内容时,首先为什么不首先使用它?

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


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

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

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

答案 2 :(得分:3)

Qt对Qt style sheets等人提供了方便的支持。 Qt labs博客有example post可能会给你一个想法。

答案 3 :(得分:2)

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

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

(然后,我不知道你的用户是否是C ++编码器......)

答案 4 :(得分:1)

我过去曾使用Juce(与Windows,Linux和Mac OS X兼容),它有一个LookAndFeel类(必须爱上这个名字),可以让你这样做。 / p>

答案 5 :(得分:1)

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