分享
分销 收藏 举报 申诉 / 39

类型第14章--Qt开发与Qtopia移植-Linux系统移植(第2版)-教学.ppt

  • 上传人:w****g
  • 文档编号:14669114
  • 上传时间:2026-10-27
  • 格式:PPT
  • 页数:39
  • 大小:1.53MB
  • 下载积分:10 金币
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    14 Qt 开发 Qtopia 移植 Linux 系统 教学
    资源描述:
    ,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,14,章,Qt,开发与,Qtopia,移植,14.1 Qt安装与编程,14.2 Qtopia Core在X86平台上的安装和应用,14.3 Qtopia Core在嵌入式Linux上的移植,14.1 Qt,安装与编程,14.1.1 下载安装Qt,14.1.2 Qt编程,14.1.3 使用qmake生成Makefile,14.1.1,下载安装,Qt,用户可以使用如下命令在线安装,Qt,:,#yum install qt3,当然也可以从网站上获得,Qt,的源码包,qt-x11-free-3.3.8b.tar.gz,自己创建,Qt,。,14.1.2,Qt,编程,Qt,是采用,C+,编写的,其编程的单元也是类。,1.,类的定义部分,2.,类的实现部分,3.,主函数部分,2.,类的实现部分,#include Login.moc,/,运行预处理头文件得到的文件,#include,#include,#include,#include,#include,Login:Login(QWidget,*,parent,const char,*,name):,QMainWindow(parent,name),QWidget,*,widget=new QWidget(this);,setCentralWidget(widget);,QGridLayout,*,grid=new QGridLayout(widget,4,2,10,10,grid);,/,将对话框分为,4,行,2,列,username_entry=new QLineEdit(widget,username_entry);,password_entry=new QLineEdit(widget,password_entry);,pwcheck_entry=new QLineEdit(widget,pwcheck_entry);,password_entry-setEchoMode(QLineEdit:Password);/,回显时为星号,pwcheck_entry-setEchoMode(QLineEdit:Password);,2.,类的实现部分,grid-addWidget(new QLabel(Username,widget,userlabel),0,0,0);,/,Username,为第,1,行第,1,列,(0,0),grid-addWidget(new QLabel(Password,widget,passwordlabel),1,0,0);,/,Password,为第,2,行第,1,列,(1,0),grid-addWidget(new QLabel(PasswordCheck,widget,pwcheck_entry),2,0,0);,/,Password,为第,3,行第,1,列,(2,0),grid-addWidget(username_entry,0,1,0);,grid-addWidget(password_entry,1,1,0);,grid-addWidget(pwcheck_entry,2,1,0);,QPushButton,*,button=new QPushButton(Ok,widget,button);/,定义按钮,grid-addWidget(button,3,1,Qt:AlignRight);,resize(350,200);,connect(button,SIGNAL(clicked(),this,SLOT(Clicked();,/,连接信号与槽,响应函数为,Clicked(),void Login:Clicked(void),/,单击,Ok,按钮时,,Clicked,响应,std:cout text()n;,std:cout text()show();,return app.exec();,/,启动事件循环,14.2 Qtopia Core,在,X86,平台上的安装和应用,14.2.1 Qtopia Core安装准备,14.2.2 编译Qtopia Core,14.2.3 Qtopia在X86平台上的应用开发,14.2.1 Qtopia Core,安装准备,在,X86,平台上编译,Qtopia Core,时需要准备两个程序:,qt-x11-opensource-src-4.3.5.tar.gz,,编译其目的主要为了获得帧缓冲(,QVFB,)。,qtopia-core-opensource-src-4.3.5.tar.gz,,编译、安装获得环境,QtopiaCore-4.3.5-arm,。,14.2.3 Qtopia,在,X86,平台上的应用开发,开发,Qtopia,程序的主要部分包括类的定义、类的实现和显示,3,个部分。以,Dialog,为例,在设计,Qtopia,时,开发初期在,dialog.h,中定义好其包含的属性和功能,在详细设计时在,dialog.cpp,中实现类方法,同时编写其测试代码即显示,main.cpp,。,dialog.h,和,dialog.cpp,作为一个类的完整描述,可以看成一个小模块。,2.,类的实现,类的实现,即在概要设计的基础上对需求的细化过程。实现在类设计阶段的细节,为类的方法填充实现部分。,3.,实现测试文件,在详细设计完一个功能或者一个类后,就开始对该功能或类进行测试。下面就是对,Dialog,类的测试文件,main.cpp,。,5.,生成,Makefile,、编译和运行,#qmake o Make,#make,14.3 Qtopia Core,在嵌入式,Linux,上的移植,14.3.1 Qtopia Core移植准备,14.3.2 交叉编译Qtopia Core,14.3.3 编译内核,14.3.4 应用程序开发,14.3.5 应用程序移植,14.3.1 Qtopia Core,移植准备,交叉编译,Qtopia Core,时需要准备两个程序:,qt-x11-free-3.3.8b.tar.gz,,编译其目的主要是为了获得库,libqjpeg,。,qtopia-core-opensource-src-4.3.5.tar.gz,,编译、安装获得环境,QtopiaCore-4.3.5-arm,。,14.3.2,交叉编译,Qtopia Core,交叉编译,Qtopia Core,的过程类似其他程序的交叉编译方法,总体包括,4,步:设置交叉编译器、配置生成,Makefile,文件、编译和安装。,1.,设置交叉编译器,2.,配置编译选项,3.,添加,qjpeg,库支持,4.,修改文件,qdrawhelper.cpp,5.,编译、安装,Qtopia Core,6.,修改环境变量,PATH,1.,设置交叉编译器,#arm-linux-gcc-v,Using built-in specs.,Target:arm-none-linux-gnueabi,/,本机的交叉编译器,1.,设置交叉编译器,在文件,qmake.conf,中将与编译器有关的内容修改如下:,QMAKE_CC,=arm-linux-gcc,QMAKE_CXX =arm-linux-g+,QMAKE_LINK =arm-linux-g+,QMAKE_LINK_SHLIB =arm-linux-g+,改为,QMAKE_CC =arm-none-linux-gnueabi-gcc,QMAKE_CXX =arm-none-linux-gnueabi-g+,QMAKE_LINK =arm-none-linux-gnueabi-g+,QMAKE_LINK_SHLIB =arm-none-linux-gnueabi-g+,2.,配置编译选项,进入,qtopia-core-opensource-src-4.3.5,目录下,使用,configure,命令创建,qmake,生成,Makefile,文件。,3.,添加,qjpeg,库支持,为提供,qjpeg,库支持,将,qt-x11-free-3.3.8b/plugins/imageformats,目录下的文件,libqjpeg.,so,,复制到目录,/usr/local/arm/mini2440/qtopia-core-opensource-src-4.3.5/plugins/image,formats/,下。,4.,修改文件,qdrawhelper.cpp,第,2,处:(根据报错的行数为,5929,),template,static inline void qt_memrotate90_template(const quint32,*,src,int srcWidth,int,srcHeight,int srcStride,quint24,*,dest,int dstStride),改为:,template,inline void qt_memrotate90_template(const quint32,*,src,int srcWidth,int srcHeight,int srcStride,quint24,*,dest,int dstStride),5.,编译、安装,Qtopia Core,执行,make,和,make install,,将,QtopiaCore-4.3.5-arm,安装到默认的路径,/usr/local/Trolltech,下。,#make,#make install,14.3.3,编译内核,14.3.4,应用程序开发,应用程序的开发往往是项目的核心内容,是系统功能需求部分的重点。应用程序的开发应该实现项目的需求或者合同中指定的功能,或者实现子系统或模块的功能。界面程序有针对普通用户和管理员,在具体项目中应根据实际情况进行功能设计。,1.,编写应用程序,2.,编写工程文件,standarddialogs.pro,3.,利用,qmake,和工程文件,standarddialogs.pro,生成,Makefile,,并编译生成可执行文件,1.,编写应用程序,以安装路径下的例子介绍,进入下面的目录可以查看是否存在,.cpp,文件和,.h,文件,/usr/local/Trolltech/QtopiaCore-4.3.5-arm/examples/dialogs/standarddialogs,。编写,dialog.h,文件定义类,包括属性和方法。,2.,编写工程文件,standarddialogs.pro,编写工程文件包括指定依赖的头文件和包含的源文件。指定目标文件路径、源文件和源文件路径。,HEADERS =dialog.h,SOURCES =dialog.cpp,main.cpp,#install,target.path=$QT_INSTALL_EXAMPLES/dialogs/standarddialogs,sources.files=$SOURCES$HEADERS,*,.pro,sources.path=$QT_INSTALL_EXAMPLES/dialogs/standarddialogs,INSTALLS+=target sources,3.,利用,qmake,和工程文件,standarddialogs.pro,生成,Makefile,,并编译生成可执行文件,#qmake,o Make,#make,/,执行,make,后生成可执行文件,14.3.5,应用程序移植,在移植应用程序前,确定已经正确移植了所需的内核和文件系统,内核需要支持,ARM EABI,编译。接下来主要进行,3,部分工作,移植库、设置环境变量和移植应用程序。,1.,移植库文件到开发板,在开发板,/usr/local,目录下新建目录,QtopiaCore,,将上位机,/usr/local/Trolltech,/QtopiaCore-4.3.5-arm/lib,目录下的库文件复制到,QtopiaCore/lib,目录下。,libQtCore.so.4,libQtNetwork.so.4,libQtGui.so.4,2.,设置环境变量,export QTDIR=/usr/local/QtopiaCore,export QPEDIR=/usr/local/QtopiaCore,export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH,3,移植应用程序到开发板,将编译好的应用程序复制到,/usr/local/QtopiaCore,目录下,在该目录下执行如下命令,运行程序:,./configdialog qws,&,
    展开阅读全文

    开通VIP折扣优惠下载文档

    提示  咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。

    咨信网小贴示:
    1、浏览或下载可查看了解,请点击【咨信网告知】。
    2、下载文件中如有侵权或不适当内容,将立即纠正。
    3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
    4、开具发票登录电脑端申请,请点击【索取发票】。

    咨信网客服组:【微信客服】

    自信AI创作助手
    关于本文
    本文标题:第14章--Qt开发与Qtopia移植-Linux系统移植(第2版)-教学.ppt
    链接地址:https://www.zixin.com.cn/doc/14669114.html

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork