GUI系统开发资源?

时间:2008-08-17 12:50:15

标签: c++ user-interface playstation-portable

有人可以推荐任何用于创建图形用户界面的好资源,最好是在C / C ++中吗?

目前我最大的影响力是3DBuzz.comC++/OpenGL VTMs(视频培训模块)。虽然它们非常好,但它们涵盖了大面积的图形编程,所以只能略过GUI编程的表面。

这个问题与“How do I make a GUI?”有关,其中也有我当前结构的大致轮廓。

我们将不胜感激。

修改 我刚看了一些答案,发现我错过了一些观点。我不得不输入两次问题,因为我抓错了按钮而失去了它。

我错过了两个重点,第一点:这将用于跨平台,包括Sony PSP上的自制程序。第二:我想创建一个不使用现有GUI系统的GUI系统。

编辑2:我认为你们中有些人忽略了这一点,我不知道使用我想建立的现有GUI系统。

Qt的当前形式无法移植到PSP,更不用说这样的任务太过分了。

那就是说我决定创建一个IM-GUI,并开始对代码进行原型设计。

9 个答案:

答案 0 :(得分:2)

我不会将OpenGL用于GUI,除非您计划使用更传统的GUI工具包(例如QtwxWidgetsGTK,而不是您认为的硬件加速和/或3D效果。 },FLTK等)。如果您只需要一个快速简单的GUI来托管您的OpenGL图形,那么Crazy Eddie's GUI是一个不错的选择。否则,为了直接在OpenGL中呈现GUI,他们就像skinnable这样的库就可以做到这一点并提供许多widgets SDL,你不必重新发明。然后可以为窗口和OpenGL上下文提供一个可移植的库,如other post

编辑:现在我已经回去看看你的Jari Komppa我认为我对你的要求有了更好的理解。对于像Nintendo DS这样的嵌入式系统上的GUI,我会考虑使用“立即模式”GUI。 good tutorial about them有一个{{3}},但你可以使用更加面向对象的C ++方法而不是他提供的C代码。

答案 1 :(得分:1)

对于像PSP这样的平台,我会稍微担心IM GUI解决方案的性能。使用传统的保留模式类型的解决方案,在创建控件时,您还可以创建顶点缓冲区/显示列表或渲染它所需的内容。使用立即模式解决方案,在我看来,您需要每帧动态地重新创建它。

你可能不关心这个,如果你只做几个按钮,或者它不会在游戏中使用(假设你正在制作一个游戏),但是,特别是如果你有一些文字如果你找不到以某种方式缓存显示列表的方法,渲染的成本可能会开始受损。

答案 2 :(得分:1)

看看Qt。它是一个用于制作GUI的开源库。与Java中的Swing不同,它假设了许多东西,因此很容易制作功能GUI。例如,textarea假定您在使用复制,粘贴,全选等方式右键单击它时需要上下文菜单。documentation也非常好。

答案 3 :(得分:1)

如果您正在查看如何使用特定框架,

http://www.fox-toolkit.org有一个API参考。或者你对一般理论更感兴趣,或者更喜欢自己如何处理低级别的东西?

答案 4 :(得分:1)

最快的方法之一是使用python与gui绑定,如pyQt,PyFLTK,tkinter,wxPython,甚至是使用SDL的pygame。

它易于快速且与平台无关。 包装的管理也是无与伦比的。

请参阅:

答案 5 :(得分:1)

有关“立即模式”GUI的更多信息,我可以推荐Molly Rocket forums。有一个关于IM-GUI背后的思想的很好的视频演示,以及大量的讨论。

我最近在Jari的页面上基于演示文稿一起攻击了一个非常快速的IM-GUI系统,在我的情况下,我真的只想在屏幕上获得几个按钮和框,或多或少只需硬编码对输入的响应,它真的感觉像是正确的事情,而不是寻求更完整的GUI架构。 (这是在DirectX应用程序中,因此我选择的数量非常有限)。

答案 6 :(得分:0)

我已经看过Molley Rocket的视频,并查看了Jari Komppa的缓存教程。

IM-GUI似乎是最好的方式,我认为它将比我最初想到的系统更加简化,构建速度更快。

现在一个新问题,我只能一个答案。 :(

再次感谢Monjardin和dooz,欢呼。

thing2k

答案 7 :(得分:0)

我要查看GLAMGLGooey

答案 8 :(得分:0)

我将第二个Qt。它是跨平台的,我发现很多比内置的Visual Studio GUI更容易使用。它是双重许可的,因此如果您不希望您的代码是GPL,则可以购买许可证。