- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux图形化程序设计PPT
Linux图形化程序设计 任课教师:宋健健 主讲人:刘曦 主要内容 1.X window系统介绍 2.Gnome/Gtk+程序设计 3.Kde/Qt程序设计 X的由来 X Window于1984年在麻省理工学院(MIT)电脑科学研究室开始开发的,当时Bob Scheifler正在发展分步式系统(distributed system),同一时间 DEC公司的 Jim Gettys 正在麻省理工学院做 Athena 计划的一部分。两个计划都需要一个相同的东西——一套在UNIX机器上运行优良的视窗系统。因此合作关系开始展开,他们从斯坦福(Stanford)大学得到了一套叫做W的实验性视窗系统。因为是根据W视窗系统的基础开始发展的,当发展到了足以和原先系统有明显区别时,他们把这个新系统叫做X。 X window系统的概念 1. X window系统 X window系统是建于客户-服务器联结基础上的图形子系统。 X window系统独立于系统内核。 2. X服务器和客户端 X服务器是一个运行在本地计算机上的程序。它响应来自X客户程序的请求,在屏幕上画图或者读取键盘或鼠标的输入,并将它传给客户端。 X客户端是一个用诸如Xlib, Xt的库写成的运用X协议的应用程序。它通过向负责管理自己的X服务器提出对显示和输出资源的请求来使用其他计算机的这些资源。 X window系统的概念(2) 3. X协议 X协议定义了客户-服务器中应用程序和它的显示的联系。通过这个协议,应用与它的显示被分离开来。 window系统的概念(3) 4. Xlib库 Xlib库是一个C语言库,它为X协议里的信息交换提供了一个API。 5. X工具包 将常用的素材(如按钮,菜单等)收集到一起就形成了所谓的X工具包(X ToolKit) 6. X窗口管理器 X窗口管理器负责安排客户窗口在显示屏幕上的摆放位置,并完成移动窗口和调整窗口尺寸等管理性的工作。 Gnome,X和窗口管理器 新用户对Gnome理解比较困难的一个地方是Gnome和窗口管理器的关系以及Gnome和X的关系。要理解这些关系,就必须分解这3个组件。 X窗口系统支持在屏幕上画出图形组件。它是整个系统的基础,提供了所有库函数和支持图形显示的技术。窗口管理器是定义窗口显示方法的软件。 Gnome是一个桌面环境,它运行在X窗口系统和窗口管理器之上。Gnome的设计使它不依赖于任何一个窗口管理器。用户可以任意选择他喜欢的窗口管理器。 X window系统的概念(4) X Window特征 综合前面所述,我们知道X的设计理念是: 计算分布 设备分离 协议独立 X Window特征(2) 这样设计带来的好处是: 不论是本地还是网络上的计算,对用户和开发者其look-and-feel来说都是一样的; X Window System不是操作系统的一部分,而仅仅是一个应用,易于开发、维护、移植; X Server是高度可移植的,支持各种语言和操作系统; X Client也是高度可移植的; X支持任何面向字节流的网络协议不论是本地还是远程的; 应用的计算是分布的,性能不受约束。 X Application的设计是高度灵活的,只需实现核心功能。 X Window System从设计开始时就融入了面向对象的设计理念,大的窗口由小的窗口组成(Widget)。符合软件设计的准则,大大方便了X应用的开发。 X程序的流程 1. 取得命令行参数;2. 与用户的显示器建立连接;3. 加载资源;4. 按照资源文件设置字体和色彩;5. 决定顶级窗口的位置和大小;6. 生成顶级窗口;7. 设置wm属性,告知wm它希望的大小和位置;8. 为顶级窗口生成图形上下文(graphics context:包含字体,前景背景色彩等信息); X程序的流程(2) 9. 设置必须的窗口属性(如colormap等);10.选择希望处理的事件;11.映射顶级窗口,这是它才真正显示出来;12.生成其它窗口,并保存它们的标志供以后访问;13.读取事件,解释并处理它;14.重复13,直到收到退出事件;15.退出时,销毁顶级窗口,关闭与显示器的连接。 Event Driven 应用一旦初始化完毕,即进入一个事件循环; 事件循环是个无限循环,它不停地在事件队列中查看X事件; 事件一般说来是由用户与显示器的交互产生的,也包括其它X Client发来的事件以及其它非X应用发来的事件; 如果事件队列中没有事件,它就继续循环; 如果有事件,则调用相关函数来处理它; X Client可以选择它希望响应的事件种类; 如果退出循环,那么程序也就结束了。 Linux桌面环境的发展 1.Linux GUI产生
文档评论(0)