gui学习
GUI
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面
有名的实现 : ucgui 、
实现围绕几个问题:
1. 怎样描述界面
通过xml, json等类似的结构描述界面,程序通过解析,呈现出来
2.常用的组件
如window, button, edit, text, notepad, sliderbar, scrollbar, listview,box, combobox, image......
组件分为可聚焦(需要传递)和不可聚焦, 例如button, edit可聚焦
组件分为容器组件和非容器组件, 例如window,box等为容器组件
3.窗口管理
窗口有一个栈的管理,管理窗口的上下层关系。
4.焦点控制:
创建一个界面时(window),焦点将自动移到窗口中第一个可聚焦的组件
销毁一个界面时焦点聚焦在窗口栈前一个窗口的第一个可聚焦组件
提供出一个可以设置焦点的接口。
5.消息处理机制
窗口完全靠消息驱动,循环检测事件来临,比如按键事件,点击事件
检测到事件之后,还要通过消息传递(top->focus->parent->root)
在传递到聚焦组件之前,可以做一些全局的设置,并拦截,后面就是传到聚焦组件,聚焦组件的父组件,一直传到root。
信号函数可以是根据用户提供的回调函数,进行处理,widget提供函数指针。
6.刷新机制
消息驱动绘制,每次处理一个消息就进行绘制,将更新的window按照栈的上下层关系进行绘制
提供一个立即绘制的接口,方便需要立即显示的某一些改动。
7.相关知识
图片:各种格式图片的解析处理,比如jpg,png,gif,bmp,tiff
文字:各种编码、字体,比如GB,UTF8,UNICODE,GBK,BIG5,ISO6937,ISO8859-1~9
颜色:rgb,yuv,cmyk(印刷色),yuv是为了压缩对人眼不敏感的色度而出现的颜色类型,
色阶:1bpp(黑白),8bpp, 16bpp,24bpp,32bpp
GA混合:混合的各种模式