如何学习C语言的GUI?

 我来答
DoramiHe
2016-05-06 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
C语言是一种早期的计算机语言,最初诞生目的是为了提供一种基于UNIX系统的工作语言.但是,后来却被越来越多的人发现它的优点与潜力.C本身比较接近底层,适合开发系统软件甚至是操作系统.我个人也认为它是界于高级语言与汇编语言之间的中级语言.C语言是一门结构化语言(我认为主要是指它的控制结构如:if if-else while for等等).C程序设计上有提到"自顶向下,逐步深入".以函数为原子功能模块.对于大型的程序来说模块化是很重要的,有一句话说的很好"优质的程序首先就是便与人们之间的相互讨论与交流,其次才是执行效率".当然我个人认为任何一名程序写作者,都应该养成一种特定的思维方式,以程序的思维方式来思考程序的实现.前提就是要足够的来了解计算机底层技术.要不我想就连学习都是很困难的,凡事都是一个思路的问题嘛.标准的来衡量,C应该算是高级语言阵营的一份子.可很多有C语言开发经验的程序写作者.通常亲切的称C为界于底级语言与高级语言之间的中级计算机语言.当然不是因为C比高级语言要差,之所以这么认为是因为C既具有高级语言的结构化与可理解性又具有低级语言的高效率.同时C的移植性也是非常不错的,大家应该知道,越是接近硬件,接近底层的语言就越加的依赖硬件环境,也就是我们所说的设备相关性.C这一点做的是非常棒的.说了这些,在从另一个角度去分析C语言.当然每种语言都有它自身的优缺点,C也一样.比如在现在高级语言与顶层技术的角度来看的话,C最大的缺陷就是Data与算法的分离.举一个例子: 对于一个拥有几千行甚至上万行Code的程序来说,如果修改Data,比如我在Structure中增加一个字段,可能为此我的整个程序都要改动,这使得程序的可重用性大大降低.开发周期也大大的延长.但是在底层的角度来看这也正是C的优点.我为什么要这么说呢?我个人认为在求解与实现一个小问题的时候,我们可以写出一个通用的模块处理不同的Data.当然比如某些经常用到的,基于数据结构的一些常用算法我们可以写出来在开发的时候我们可以直接把预先编写的模块插入到我们的程序中去,这不也是大大低了开发周期吗?初学者完全可以根据自己的需求来编写一个自定义库.好了,说了这些,有些地方我理解错了,还请各位指出来,交流是很重要的,前提是要把自己的心态放平.下面我将谈论本问的重点,也就是如何来学习C语言,是给那些初学者读的.
育知同创教育
2016-05-05 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
主要把几个关键问题弄清楚,每个框架都有不同的方案解决这几个问题。
1. 怎么描述界面。
一般都是类似xml的树结构来描述
2. 怎么render, refresh
拿到object tree/render tree之后, 如何把这个东西画出来到framebuffer上, cpu?gpu?以什么格式?node的状态改变之后, 怎么刷新,什么时候刷新。
3. 如何管理这个tree。
clip, transparent等等属性怎么处理, layout怎么管理,parent关掉了怎么处理子节点? ...
4. 用户点击这里该怎么办?(user event handling)
无非这几种办法
function pointer(Callback) 或者 signal/slot 或者observer interface+ registration。
5. event handle (system event handling)
这是比4更广义的问题,
a. input device trigged, 发IRQ, kernel处理, 丢给framework的handler.
b. 打包放入 event queue.
c. loop engine dispatches event: (key events sent to widget has the focus, mouse event to widget under cursor).
d. if target dont have handler for this event, bubble up to the root node until someone accpet it.
5. MVC 的具体细节和jargon
6. 多线程, IPC, shared memory问题
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兄弟连北京校区
2016-08-19 · TA获得超过3003个赞
知道大有可为答主
回答量:2631
采纳率:87%
帮助的人:352万
展开全部
主要把几个关键问题弄清楚,每个框架都有不同的方案解决这几个问题。
1. 怎么描述界面。
一般都是类似xml的树结构来描述
2. 怎么render, refresh
拿到object tree/render tree之后, 如何把这个东西画出来到framebuffer上, cpu?gpu?以什么格式?node的状态改变之后, 怎么刷新,什么时候刷新。
3. 如何管理这个tree。
clip, transparent等等属性怎么处理, layout怎么管理,parent关掉了怎么处理子节点? ...
4. 用户点击这里该怎么办?(user event handling)
无非这几种办法
function pointer(Callback) 或者 signal/slot 或者observer interface+ registration。
5. event handle (system event handling)
这是比4更广义的问题,
a. input device trigged, 发IRQ, kernel处理, 丢给framework的handler.
b. 打包放入 event queue.
c. loop engine dispatches event: (key events sent to widget has the focus, mouse event to widget under cursor).

OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式