用于开发GUI库的文章

时间:2012-03-19 22:38:13

标签: c++ c user-interface

基本上,我无法找到任何有关开发自己的GUI的好文章,处理好的做法,基本结构,事件冒泡,提示和避免所有常见的陷阱。我特别感兴趣的是如何在5分钟内构建一些概念验证GUI几乎无法工作......我也不想构建下一个未来的GUI。

目的是构建一个能够用于游戏工具的合理功能的GUI,但它们将存在于游戏中,因此我不想使用现有的大规模GUI,我发现大多数游戏GUI都是因为我需要而臃肿我喜欢自己做的经历。

我过去做过一个GUI,但是由于一些糟糕的设计决策和缺乏经验,它只能做很多事情(并且是用Flash构建的,所以它有很多免费的东西) )。所以这次我想真正了解基础知识。

2 个答案:

答案 0 :(得分:1)

一些提示 -

1)选择你的风格UI会起作用 - 它会无国籍吗?如果是,您将如何适当地处理事件?如果它是无状态的,您可能必须重新评估您的UI用户代码两次,以便从用户端获取最新的事件更改。如果您的UI存储状态,那么您将不必关心处理事件,但它会在快速突变和重建时限制您的UI。

2)不要过分依赖OO,虚拟方法不是世界上最快的方法,所以要小心使用它们;拥有某种基于继承的结构可能会有所帮助。如果使用对象,请注意dynamic_cast和RTTI;他们会减慢你的速度。相反,为每个窗口小部件类设置一个枚举,get_type()方法,并对可转换性进行手动检查。

3)尝试分离外观和UI逻辑/布局。

4)如果你想要动态窗口,布局等,那么你将不得不处理对齐,夹紧,位置等及其更新。如果你只想要静态定位的小部件,它会让它变得更容易。

5)不要过度设计,你不会从中受益。

我告诉你的确没有什么特别的东西;有一些具体的问题可能会有所帮助吗?

答案 1 :(得分:0)

查看现有GUI库的文档。这应该为您提供经过验证的设计的详细信息,以解决您遇到的问题。

你可能想从你熟悉的那个开始,但我认为设计得很好的是AppKit。它的API是Obj-C,因此如果你想要复制它需要一些调整,但是文档提供了有关对象如何与之交互的各种细节,例如:处理事件,以及布局约束如何工作,这应该直接适用于以大多数语言设计OO GUI。