QtGUI开发嵌入式Linux系统开发与应用参考书目:ARM嵌入式Linux系统开发从入门到精通
一、Qt概述1、Linux下的GUI介绍GUI是GraphicalUserInterface的缩写,即图形用户接口,一般由视窗、图标、菜单、对话框及其他一些可视特征组成。允许终端用户方便地利用鼠标和键盘来操作电脑。GUI的概念是20世纪70年代由施乐公司提出的,1984年苹果的Macintosh首先成功使用GUI并应用于商业用途的产品。之后各种GUI系统发展迅速,包括后来居上的微软的Windows系列,以及广泛应用于类UNIX系统的的XWindows(常简称为X11或X)
一、Qt概述1.1Linux桌面GUI系统 Linux环境下的图形视窗标准为XWindowSystem,Linux是类UNIX系统,顶层运行的GUI系统是兼容X标准的XFree86系统。X标准大致可以划分XServer、GraphicLibrary(底层绘图函数库)、Toolkits、WindowManager等几大部分。其好处是具有可扩展性、可移植性等优点。在所有类UNIX系统中,XWindow几乎完全占据统治地位。桌面整合环境(Gnome,KDE等)高级图形库和开发包(Gtk+,Qt等)XWindows系统底层API(Xlib)XWindows系统协议实现层常见的Linux桌面GUI系统框架
一、Qt概述1.1Linux桌面GUI系统——XWindowX起源于1984年麻省理工学院计算机科学研究所和Athena计划的共同研究,其基础是从斯坦福大学得到的一套叫做W的实验性视窗系统,并在基于W的基础上开始发展,当发展到足以和原先系统有明显区别时,他们把这个系统叫做X。1987年9月X视窗系统第11个版本即X11发行,并取得显著成功,成为早期的较大规模开源项目之一。后来的X发行的版本都被称为X11的某个版本,如X11R2、X11R6等。这也是XWindow系统常被简称为X11的原因。
一、Qt概述1.1Linux桌面GUI系统——XWindowXWindow系统架构基于C/S模型,主要由XServer和XClient通过XProtocol在网络上通信完成应用任务。当然,在很多情况下,XServer和XClient运行在同一主机上,这时它们之间的通信只需利用本地的一些通信方式。XWindow为GUI环境提供了基本的框架:在屏幕上绘图和移动窗口,以及与鼠标和键盘的互动等。XServer用来控制显示器和输入设备,它可以建立视窗,在视窗中画图和文字,响应Client程序的请求;而XClient就是X中的应用程序,主要完成应用程序计算处理的部分,并不接受用户的输入信息,输入信息都是输入给XServer,然后由XServer以Event的形式传递给XClient。
一、Qt概述1.1Linux桌面GUI系统——GNOME/Gtk+和KDE/QtXWindow本身不是一个直接的图形操作环境,它只是作为图形环境与UNIX系统内核沟通的中间桥梁,任何厂商都可以在XWindow基础上开发出不同的GUI图形环境。就读于图宾根大学的德国人MatthiasEttrich发起了KDE(KDesktopEnvironment)计划,并选择了当时新推出的功能强大的Qt作为GUI开发包。KDE本身采用GPL,而作为KDE底层基础的Qt却是不遵循GPL的商业软件,于是一大批自由程序员对KDE项目的决定深为不满,在墨西哥程序员MiguelDeIcaza的组织下发起了GNOME计划来替代KDE,并选择Gtk+作为Qt开发包的替代,担当GNOME的基础。
一、Qt概述1.1Linux桌面GUI系统——GNOME/Gtk+和KDE/QtKDE和GNOME在之后多的年相互竞争中迅速发展,逐渐成为Linux下桌面环境的两大阵营。目前GNOME/Gtk+吸引的公司较多,而KDE/Qt在Office/嵌入式环境中领先一步。从2003年以来,KDE和GNOME开始逐渐相互支持对方的程序——只要在KDE中安装GTK库,便可以运行GNOME的程序,反之亦然。经过几年的努力,KDE和GNOME都已经实现高度的互操作性,两大平台的程序都是安全共享的。
一、Qt概述1.2Qt/X11介绍1991年,Qt的两位创始人就开始着手开发Qt,到1994年Qt已基本成型,于是他们成立了Trolltech(奇趣)公司,开始用Qt开发应用软件。作为跨平台的GUI开发包,Qt发行了不同的版本以支持各种流行的操作系统,如微软的Windows系列、基于X的各种UNIX系统、苹果的MacOS