Linux图形编程.ppt_第1页
Linux图形编程.ppt_第2页
Linux图形编程.ppt_第3页
Linux图形编程.ppt_第4页
Linux图形编程.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,122020.,教学内容,第一章嵌入式系统概述第二章学习板硬件及开发环境的建立第三章构建嵌入式Linux系统第四章嵌入式Linux设备驱动第五章嵌入式Linux串口和网络编程第六章嵌入式Linux图形编程,122020.,嵌入式GUI编程,课程目的了解嵌入式图形系统掌握QT/E开发环境、关键技术通过实例熟悉基于Qt/E的嵌入式GUI设计,122020.,1嵌入式图形系统简介,Linux图形系统的发展史linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,122020.,6.1嵌入式图形系统简介,常用Linux图形系统XWindow:业界标准OpenLook:来自SUN与ATechoyes)|./configure-platformlinux-generic-g+-qconfigqpe-depths16,24,32make-Csrc,122020.,6.2.4QTE开发环境搭建,QPE编译tarxfvzqtopia-free-1.7.0.tar.gzmvqtopia-free-1.7.0qtopiacdqtopia/src./configure-platformlinux-generic-g+make,122020.,6.2.4QTE开发环境搭建,运行,122020.,当在PC上模拟Qtopia的运行时,需要用到对应Qt版本的库文件,因此需要修改/etc/ld.so.conf文件以适应刚刚安装的Qt(Redhat安装时带有Qt库,但不适合我们最新安装的版本),修改后的ld.so.conf文件内容如下:/sbc2410/x86-qtopia/qt/lib/sbc2410/x86-qtopia/qtopia/lib/usr/kerberos/lib/usr/X11R6/lib/usr/lib/sane修改完此文档后,为了让刚刚安装的库生效,必须运行ldconfig。至此Qt的开发平台已经建立。,122020.,(1)设置环境变量exportQTDIR=$PWD/qtexportQPEDIR=$PWD/qtopiaexportTMAKEDIR=$PWD/tmakeexportTMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g+exportPATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH(2)启动虚拟帧缓存“$qvfbintvalue()constreturnval;voidsetValue(int);private:intval;,122020.,信号与插槽,一个小的Qt类如下:classFoo:publicQObjectQ_OBJECTpublic:Foo();intvalue()constreturnval;publicslots:voidsetValue(int);signals:voidvalueChanged(int);private:intval;,122020.,信号与插槽,槽可以由应用程序的编写者来实现。这里是Foo:setValue()的一个可能的实现:voidFoo:setValue(intv)if(v!=val)val=v;emitvalueChanged(v);,122020.,信号与插槽,把两个对象连接在一起的一种方法:Fooa,b;connect(,122020.,6.2.6实例一,一、代码编辑二、程序编译,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,#include#includeintmain(intargc,char*argv)QApplicationa(argc,argv);QPushButtonhellobtn(Helloworld!,0);hellobtn.resize(100,20);a.setMainWidget(,122020.,6.2.6实例一,程序编译1生成工程文件2生成MakefiletmakeoM3编译make,122020.,6.2.7Qt/Embedded开发模型,嵌入式软件开发通常都采用交叉编译的方式进行,基于Qt/Embedded和Qtopia的GUI应用开发也采用这样的模式。先在宿主机上调试应用程序,调试通过后,经过交叉编译移植到目标板上。Qt/Embedded直接写入帧缓存,在宿主机上则是通过qvfb(virtualframebuffer)来模拟帧缓存。qvfb是X窗口用来运行和测试Qtopia应用程序的系统程序。qvfb使用了共享内存存储区域(虚拟的帧缓存)来模拟帧缓存并且在一个窗口中模拟一个应用程序来显示帧缓存,显示的区域被周期性的改变和更新。,122020.,6.2.7Qt/Embedded开发模型,交叉编译:exportQTDIR=$PWD/qtexportQPEDIR=$PWD/qtopiaexportTMAKEDIR=$PWD/tmakeexportTMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g+exportPATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATHcdqtmakec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论