4

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

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

4

6 回答 6

11

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

于 2010-01-18T09:15:33.860 回答
5

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

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


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

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

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

于 2010-01-18T09:19:51.677 回答
3

Qt 通过Qt 样式表等提供了方便的支持。Qt 实验室博客有一个示例帖子,可能会给您一个想法。

于 2010-01-18T09:16:03.477 回答
2

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

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

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

于 2010-01-18T09:34:46.853 回答
1

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

于 2010-01-18T09:16:38.303 回答
1

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

于 2010-01-18T11:45:45.513 回答