算法讨论,关于GUI库中的窗体布局算法
时间:2011-12-24
来源:互联网
小弟最近在写一个GUI库,目前的QT,wxWidgets个人觉得太复杂,不适合快速开发,光入门就得几个月。
用C++写的,各组件耦合度控制的比较好。自己认为。可定制界面。
目前有一个问题就是。消息的分发和描绘管理以及按下TAB键时焦点跳转上。
我详细分析了现有的需求,觉得得有一个管理窗体的布局类(我用C++写的)
描绘的时候自底向上描绘,响应鼠标消息的时候自顶向下描绘。TAB键的时候向某个方向移动焦点。都需要管理当前视野内的窗体布局。但自己写的算法不够优雅,很冗长。
数据结构是这样描述的:
每层都有个布局类,里面有窗体指针,指向当前焦点所在窗体,每个窗体有四个指针指向周边窗体
[窗体4]-[窗体1]->[窗体2]
|
[窗体3]
当新弹出窗体时就增加一个图层。
这样若干个图层就建立起来了。其中的遍历和检索十分麻烦。个人感觉写出得代码很难看。
各位有好的方法吗?
用C++写的,各组件耦合度控制的比较好。自己认为。可定制界面。
目前有一个问题就是。消息的分发和描绘管理以及按下TAB键时焦点跳转上。
我详细分析了现有的需求,觉得得有一个管理窗体的布局类(我用C++写的)
描绘的时候自底向上描绘,响应鼠标消息的时候自顶向下描绘。TAB键的时候向某个方向移动焦点。都需要管理当前视野内的窗体布局。但自己写的算法不够优雅,很冗长。
数据结构是这样描述的:
每层都有个布局类,里面有窗体指针,指向当前焦点所在窗体,每个窗体有四个指针指向周边窗体
[窗体4]-[窗体1]->[窗体2]
|
[窗体3]
当新弹出窗体时就增加一个图层。
这样若干个图层就建立起来了。其中的遍历和检索十分麻烦。个人感觉写出得代码很难看。
各位有好的方法吗?
作者: wanruirui 发布时间: 2011-12-24
看QT和wxWidgets源码。
fltk这个轻量的gui库可可以参考
fltk这个轻量的gui库可可以参考
作者: hemiya 发布时间: 2011-12-24
快速上手的界面设计,你可以看下c++ builder
作者: keiy 发布时间: 2011-12-24
窗口布局不是窗口管理器的事吗?
作者: vanxining 发布时间: 2011-12-24
wxWidgets没见有自己处理窗口布局的代码
作者: vanxining 发布时间: 2011-12-24
class control//所有的控件,窗口的基类
{
control* parent;
control* pre;
control* next;
control* children;
void addchild(...)
void removechild(...)
//处理焦点
}
一般有个窗口(窗口里面有很多控件)
那么如果焦点是A,那么Tab会指向A的next ,下个兄弟,如果没有兄弟,pre->pre,指向第一个控件
只是参考,我也在写,写着写着没感觉了,写不下去了.
怎么像都不知道自己到底想写个什么样子的gui(dx版本).
心情很乱,结构也整理不好,哎祝你早日完成
{
control* parent;
control* pre;
control* next;
control* children;
void addchild(...)
void removechild(...)
//处理焦点
}
一般有个窗口(窗口里面有很多控件)
那么如果焦点是A,那么Tab会指向A的next ,下个兄弟,如果没有兄弟,pre->pre,指向第一个控件
只是参考,我也在写,写着写着没感觉了,写不下去了.
怎么像都不知道自己到底想写个什么样子的gui(dx版本).
心情很乱,结构也整理不好,哎祝你早日完成
作者: SyzCools 发布时间: 2011-12-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28