GUI系统开发资源?
有人可以推荐一些好的资源来创建图形用户界面,最好是在C / C ++中吗?
目前,我最大的影响是3DBuzz.com的C ++ / OpenGL VTM(视频培训模块)。尽管它们非常好,但它们涵盖了图形编程的大范围,因此仅略过了GUI编程的表面。
这个问题确实与"我如何制作GUI?"有关,在这里我的当前结构也有一个粗略的概述。
任何答复将不胜感激。
编辑:
我刚刚阅读了一些答案,发现我错过了一些要点。当我发现错误的按钮并将其丢失时,我不得不两次输入问题。
我错过了两个重要的要点,第一点:这将在包括索尼PSP上的自制软件在内的跨平台上使用。第二:我想创建一个不使用现有GUI的GUI系统。
编辑2:我想你们中的一些人遗漏了重点,我不是要使用要构建的现有GUI系统使用什么。
当前形式的Qt不能移植到PSP,不要介意这种任务的过大杀伤力。
也就是说,我决定创建一个IM-GUI,并已开始编写代码原型。
解决方案
回答
看看Qt。它是用于制作GUI的开源库。与Java中的Swing不同,它具有很多功能,因此制作功能GUI确实很容易。例如,一个textarea假定我们在右键单击带有复制,粘贴,全选等内容的菜单时需要上下文菜单。文档也非常好。
回答
如果我们正在寻找如何使用特定框架的方法,则http://www.fox-toolkit.org具有API参考。还是我们对通用理论更感兴趣,或者对自己如何做低水平的东西更感兴趣?
回答
除非我们打算为硬件加速和/或者3D效果做计划,而我们认为使用传统的GUI工具包(例如Qt,wxWidgets,GTK等)不会获得这种效果,否则我不会将OpenGL用于GUI。如果我们只需要一个快速简单的GUI来承载OpenGL图形,则FLTK是一个不错的选择。否则,要在OpenGL中直接渲染GUI,它们就是像Crazy Eddie's GUI这样的库,它可以做到这一点,并提供许多无需换肤的可换肤的小部件。然后可以为窗口和OpenGL上下文提供可移植的库,例如SDL。
编辑:既然我已经回过头来看看另一篇文章,我想我对要求有了更好的了解。对于像Nintendo DS这样的嵌入式系统上的GUI,我会考虑使用"立即模式" GUI。 Jari Komppa有关于它们的很好的教程,但是我们可以在C ++中使用比他介绍的C代码更加面向对象的方法。
回答
有关"立即模式" GUI的更多信息,我可以推荐Molly Rocket论坛。这段视频很好地介绍了IM-GUI背后的思想,并进行了大量讨论。
最近,我基于Jari页面上的演示内容,破解了一个非常快速的IM-GUI系统,在我的情况下,我真的只想能够在屏幕上获得几个按钮和框,或者多或者少都包含硬代码对于输入的响应,这确实是一件正确的事,而不是寻求更加完善的GUI架构。 (这是在DirectX应用程序中的,因此我的选择数量非常有限)。
回答
我第二次Qt。它是跨平台的,与使用Visual Studio GUI内置的东西相比,我发现使用它要容易得多。它是双重许可的,因此,如果我们不希望代码成为GPL,则可以购买许可。
回答
我看了Molley Rocket的视频,并浏览了Jari Komppa的缓存教程。
IM-GUI似乎是最好的方法,我认为它将比我最初设想的系统更加简化,并且构建速度也更快。
现在是新问题,我只能回答一个问题。 :(
再次感谢Monjardin和dooz,欢呼。
的东西
回答
我来看看GLAM和GLGooey
回答
最快的方法之一是将python与gui绑定(如pyQt,PyFLTK,tkinter,wxPython)结合使用,甚至通过使用SDL的pygame进行使用。
它易于快速且独立于平台。
软件包的管理也是无与伦比的。
看:
- http://wiki.python.org/moin/PyQt
- http://www.fltk.org/
- (tkinter是默认选项,并且已经与python一起打包了)
- http://wxpython.org/
- http://www.pygame.org/news.html
回答
对于PSP这样的平台,我会稍微担心IM GUI解决方案的性能。使用传统的保留模式类型的解决方案,在创建控件时,还可以创建顶点缓冲区/显示列表或者呈现它所需的功能。对于即时模式解决方案,在我看来,我们需要在每个帧中动态地重新创建此模式。
如果我们只按了几个按钮,或者我们不想在游戏中使用它(假设我们正在制作游戏),那么我们可能并不在意这一点,但是,尤其是如果我们有很多文字说明,那么如果我们找不到以某种方式缓存显示列表的方法,则渲染的效果可能会开始受到损害。