如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
LinuxLinux操作系统操作系统•大工软件学院嵌入式系邱铁办公楼409Tel:87571521E_mail:qiutie@sohu.com第10章Linux图形界面设计工程实践的目的与任务•了解LinuxXWindows,及QT信号机制。•熟悉QT编程,实现如图1所示单位转换工具并可以熟练利用QTDesigner设计图形界面应用程序。•X窗口是一种用于UNIX系统的标准图形化用户界面(GUI),它是由麻省理工学院开发的。GUI是用鼠标器和键盘控制的,具有下拉菜单、在屏按钮、卷动条和为运行不同应用的重叠窗口界面。•X窗口系统在位映射屏幕上的一个或多个窗口中运行程序。用户可以在每个窗口同时在系统上运行多个程序,并且通过用鼠标器点击它们来在窗口之间进行交换。•X服务器处理所有X客户的处理程序,以及通过消息传递系统和其它客户交互工作。X服务器控制整个本地环境,因而当访问存储器和其它系统资源时,程序间进行合作。QT编程•Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt,基于Framebuffer的QtEmbedded,快速开发工具QtDesigner,国际化工具QtLinguist等部分Qt支持所有Unix系统,当然也包括Linux,还支持WinNT/Win2k,Win95/98平台。Trolltech公司在1994年成立,但是在1992年,成立Trolltech公司的那批程序员就已经开始设计Qt了,Qt的第一个商业版本于1995年推出Qt具有下列优点:•优良的跨平台特性:•Qt支持下列操作系统:MicrosoftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX等等。•面向对象•Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。•丰富的API•Qt包括多达250个以上的C++类,还替供基于模板的collections,serialization,file,I/Odevice,directorymanagement,date/time类。甚至还包括正则表达式的处理功能。QTDesigner•Qt设计器是用来设计和实现用户界面并能够在多平台下使用的一种工具。Qt设计器可以使用户界面设计实验变得简单。在任何时候你可以要求所生成的代码去重建Qt设计器产生的用户界面文件,并可以根据你的喜好来改变你的设计。qmake•qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。QT信号与Slot机制•信号和槽机制是QT的核心机制,要精通QT编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。信号和槽是QT自行定义的一种通信机制,它独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为moc(MetaObjectCompiler)的QT工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。•在QT中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生coredumps。信号•当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。只有定义过这个信号的类及其派生类能够发射这个信号。当一个信号被发射时,与其相关联的槽将被立刻执行,就象一个正常的函数调用一样。•信号-槽机制完全独立于任何GUI事件循环。只有当所有的槽返回以后发射函数(emit)才返回。如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的下面定义了三个信号:signals:voidmySignal();voidmySigna