Qt or wxWidgets



我要开始做一个新项目。这是一款基于Windows, Linux和Mac OS x使用OpenGL的3D游戏,我将需要一个用于GUI,窗口和处理输入的库。我最终选择了3个Qt, WxWidgets和GTK+。

1- LGPL是否允许使用这些库来制作专有应用程序?

2-这三个应用程序中哪一个最适合我?

  1. 是的,只要你不静态地链接到它们(即:使用它们作为dll)。虽然wxWidgets允许您在不受GPL约束的情况下静态链接。

  2. 以上皆非。如果你正在制作一款3D游戏,那么这些方法都不能满足你的需求。游戏的GUI需求与典型桌面应用程序的GUI需求非常不同。在游戏中,你希望特定的GUI元素与特定的艺术方向保持一致,而不是与桌面环境保持一致。另外,您可能希望您的GUI元素比这些工具包通常允许的更具表现力。

    CEGUI的存在就是因为这样的原因。这是一个为游戏需求而设计的GUI系统。

    而且,这些都没有提供游戏通常想要处理的输入方式。你通常希望在游戏中添加比这些工具包更低级的内容。这就是为什么像SDL和SFML这样的项目存在。

1 -是的,只要你的项目不需要修改库本身

2 -我强烈推荐Qt 用于新的窗口应用程序,如果没有其他原因,它有优秀的文档(尽管有许多其他的优势,但它很快就会变得主观)。GTK和WxWidgets都会让你浪费精力去想那些你根本不应该去想的事情。Qt更容易a)定制,b)当你不关心定制时忽略。

尽管对于3D内容,你可能想要查看成熟的引擎,比如,哦,irrlight或Ogre3D或其他许多

WxWidgets使用LGPL,这意味着您可以在项目中动态链接到它,而不会强制您的项目使用GPL或LGPL。

然而,我建议使用CEGUI而不是你建议的库,对于任何游戏或渲染应用程序

CEGUI使用MIT许可证,它比LGPL不那么严格,并且还允许您动态(首选)或静态地链接到库,而无需强制您为自己的项目拥有特定的许可证。

  • 支持OpenGL 3.2+ Core Profile (OpenGL3 Renderer)
  • 支持非常旧的OpenGL版本(OpenGL Renderer)
  • 如果你想使用Ogre或irrlight引擎,也可以依赖于OpenGL, CEGUI也支持这两个渲染器,通过CEGUIOgreRenderer和ceguiirlichtrenderer

  • 支持Windows, Linux和Mac OS X,只要你想
  • 因为有人在评论中问:Unicode字符是完全支持的,所以
    你可以使用希伯来语,阿拉伯语,各种亚洲字母等,如当前字体演示所示-当然你需要安装CEGUI字体之一或使用另一种开源字体
  • 是专门为游戏,模拟和渲染应用程序设计的

  • 你可以为UI中的所有元素添加皮肤(目前只能通过XML,很快也可以使用编辑器)
  • 提供了一个强大的编辑器(CEED)的布局编辑与所见即所得(!)免费!
  • 是完全可扩展和自适应的,通过改变c++代码和/或XML
  • 功能强大的事件系统

设置CEGUI及其依赖项并使其与您的项目一起运行可能需要一些时间,但从长远来看,它仍然会得到回报,因为它比大多数免费的UI解决方案具有更多的功能。想象一下,如果你使用一个UI库,然后发现它没有提供你需要的特定功能,而且几乎不可能添加这个功能,那将是多么令人恼火——因为CEGUI是基于c++和XML的,而且由于它的设计,你总是可以对CEGUI添加特定的调整。因此,即使从长远来看,你也很可能不会遇到限制。而且它已经有很多开箱即用的特性——比同类库要多。

相关内容

  • 没有找到相关文章

最新更新