XGUI之整体设计

选择c++语言:说到这里就浅淡一下面向对象和面向过程的区别了。面向过程的代表语言就是c语言,而面向对象的代表是c++。
    下面我依照个人理解来解释两者的区别:“过程”一词,从字面上我们可以理解为一事物由开始->经过->结束,这就是一个过程。而面向对象,“对象”一词就有整体的意思了,在面向对象的世界都是用类的方式思考问题。有了类的概念然后我们去抽象出类的一些方法和属性。例如我们“人类”,人可以说话,可以编程等,拥有的属性有身高,语言等,这就是不是过程了。每个人的理解都不一样,而且理解是一种意识,有时候也无法完全表达出来。
    有人说面向过程是将问题划分为步骤来解决,而面向对象是化为为问题来解决的。
    所以GUI编程使用面向对象是最合适不过了。

以下是类的继承图
     XGUI之整体设计_第1张图片

消息机制:GUI最总要的是消息机制,在这里XGUI采用的是的监听的机制。响应消息的方式有两种:1.覆盖父类的虚函数;2.而添加监听器,回调的方式去实现消息响应。传递消息的时候用的是树的思想,树也是大多图像用户接口所使用的思想,因为树可以减少遍历层数。
    纵观所见的GUI,QT还是MFC底层都是回调方式,实现底层响应上层实现。

布局管理: layout既可以做布局管理器有可以容器,本程序只写了两个布局管理器--水平布局(XHBoxLayout)和竖直布局(XVBoxLayout)。
后续我在详细介绍布局算法。
如下图,必须有个root节点,然后root中添加一个布局,布局中可以添加许多字组件,然后子组建也可以添加布局...。

XGUI之整体设计_第2张图片        


主要解决的问题:1.如何处理组建叠加问题,最上层的组件需先响应事件;2.组建绘制会破坏其它组建的状态,这里我们称作污染。


 

你可能感兴趣的:(GUI)