好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Qt编程培训PPT课件.ppt

67页
  • 卖家[上传人]:日度
  • 文档编号:212002572
  • 上传时间:2021-11-18
  • 文档格式:PPT
  • 文档大小:189KB
  • / 67 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 讲义纲要pQtopia集成开发环境搭建p基础窗口部件Qwidgetp信号和槽p事件处理2021/7/221Qt概念pQt是挪威Trolltech公司的旗舰产品,作为跨平台开发框架,是开源KDE桌面的基石.pGoogleEarch,Skype,Opera,AdobePhotoshopElement等著名软件都是基于Qt编写的.目前Qt最新版本为4.3.4p和java的”一次编写到处运行”所不同的是,Qt是源代码级的跨平台一次编写到处编译.一次开发的Qt应用程序可以移值到不同平台.目前Qt支持的平台有:Mac,WindowsNT/2000/XP/Vista,unix,linux,嵌入式linux2021/7/222Qt和Qtopia之间的关系pQt泛指Qt的所有桌面版本,比如Qt/X11,QtWindows,QtMac等由于Qt最早是在Linux中随着KDE流行开来的,因此通常很多人说的Qt都指用于Linux/Unix的Qt/X11pQt/E(Qt/Embedded)是用于嵌入式Linux系统的Qt版本Qt/E去掉了XLib的依赖而直接工作于FrameBuffer上,因而效率更高,但它并不是Qt的子集,而应该是超集,部分机制(如QCOP等)不能用于Qt/X11中。

      pQtopia是一个构建于Qt/E之上的类似桌面系统的应用环境相比之下,Qt/E是基础类库pQtopiaCore:就是原来的Qt/E,大概从Qt4开始改名,把QtopiaCore并到Qtopia的产品线中去了但实际上QtopiaCore就相当于原来的Qt/E,仍然作为基础类库2021/7/223Qtopia安装p从网站上下载的qt文件qtopia-2.2.0.tar.gz,拷贝到一个单独目录中.推荐放在opt目录下单独解压tar-zxvfqtopia-2.2.0.tar.gzp建立两个目录arm_qtopia和x86_qtopia目录把源码分别解压到两个目录中,后面我们会对其分别编译出x86仿真版和arm交叉编译版本pqtpioa安装之前需要下载3个补丁包并安装后才能正确编译2021/7/224Qtopia安装p编译Qt库,并且连编实例程序、教程和工具(比如Qt设计器),就像下面这样 在解压目录中输入./configure -qte -embedded -no-xft -qconfig qpe -depths 16,32 -system-jpeg -qt-zlib -qt-libpng -gif -no-g+-exceptions -no-qvfb -xplatform linux-arm-g+ -tslib -qpe edition pda -displaysize 240 x320 -fontfamilies helvetica fixed micro smallsmooth smoothtimes unifont -xplatform linux-arm-g+ -luuid -qt2 -no-opengl -no-xft -dqt -no-xft -thread该命令会自动检测你目前linux操作系统具体配置情况 执行make命令生成qt和qtopia。

      执行makeinstall系统会把编译好的所有库文件拷贝到$QPEDIR/image目录下p在你主机中创建如下脚本文件中设置一些环境变量如下 export QTDIR=/opt/qte/arm_qtopia/qtopia2.2.0/qt2 export QPEDIR = /opt/qte/arm_qtopia/qtopia2.2.0/qtopia export PATH=$QTDIR/bin:$QPEDIR/bin:$PATH export QMAKESPEC= $QPEDIR/mkspecs/qws/linux-arm-g+ export HOME=opt/qte/arm_qtopia/qtopia2.2.0/image/root export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH 2021/7/225有关Qt环境变量pQMAKESPEC:这个必须设置为你所使用的系统的平台和编译器的组合举例来说,加入你使用的是Windows和MicrosoftVisualStudio,你应该把环境变量设置为win32-msvc。

      如果你使用Solaris和g+,你应该把环境变量设置solaris-g+pQTDIR:这个必须设置到Qt被(或者将被)安装到的地方比如,/opt/qte/arm_qtopia/qtopia2.2.0/qt2一旦环境变量被设置到qmake目录,$QTDIR/qmakepQPEDIR:这设置为Qtopia的实际安装目录2021/7/226Qt主要开发工具pKdeveloptIDEKDelvelopt是Linux下开源IDE,目前最新版本为3.5.3,它的优点是专门为linux下编写c+的开发工具有速度快易调试等特点.但是没有代码职能感知功能pEclipse+C+DeveloptTool(CDT)+qt插件Eclipse是java开发的IDE工具.它能够通过插件方式支持多种语言如:c+,java,c.要运行Eclipse必须先安装jre.具有代码智能感知功能pQdeveloptIDEQDevelop是专门用于Qt4开发的IDE环境QDevelop基于Qt4核心,需要安装gcc编译器(windows为MinGW),还需要gdb提供调试功能和ctags实现代码补全功能QDevelop目前支持英语、法语、德语、荷兰语、波兰语、西班牙语、中文、俄语、意大利语和乌克兰语。

      QDevelop是和Kdevelop无关的项目它主要专注于提供Qt的IDE开发环境虽然还不完善,但是发展很快,并且跨平台QDevelop和KDevelop具有完全不同的源代码2021/7/227Qt体系架构pQt的整个设计都是以单根继承为主这跟java相同.所谓单根继承就是说所有的Qt类都有一个共同的祖先都是QObject类pQObject类后面有三个大的子类分别负责不同的功能它们是: QApplicaton:类管理图形用户界面应用程序和控制台程序的控制流和主要设置 QWidget:是所有用户界面对象的基类,负责管理图形界面 QLayout:负责管理所有图形界面的摆放方式2021/7/228qmake工程文件p工程文件里包含了qmake建立你的应用程序(或者库,插件)所需要的所有信息你的工程所需的资源通常通过一系列的声明语句来描述,而简单的控制结构,可以实现在不同的平台和环境下,执行不同的编译流程pqmake工程文件是以.pro为扩展名2021/7/229qmake概述pqmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具p手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。

      使用qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码Trolltech公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具.当Qt被连编的时候,默认情况下qmake也会被连编pqmake使用储存在项目(.pro)文件中的信息来决定Makefile文件中该生成什么2021/7/2210qmake工程文件示例TEMPLATE=appTARGET=HelloworldDEPENDPATH+=.INCLUDEPATH+=.SOURCES+=hello.cppHEADERS+=hello.hFORMS+=charGame.uitest_dynmaic.uiCONFIG+=qtwarn_onreleaseCONFIG+=qtdebugCONFIG+=qtthreaddebug2021/7/2211pro文件解释pTEMPLATE:表示最终生成得目标文件类型app表示,最终生成得可执行文件pTARGET:目标名称是自动设置的,它被设置为和项目文件一样的名称,但是为了适合平台所需要的后缀DEPENDPATH:应用程序所依赖的搜索路径pINCLUDEPATH:应用程序所需的额外的包含路径的列表pSOURCES:应用程序得源代码pHEADERS:应用程序用到的头文件pFORMS:应用程序用到的ui窗体文件pCONFIG:包含Qt连接编译得一些配置信息包括: qtwarn_on:编译器会输出尽可能多的警告信息 qtwarn_off:编译器会输出尽可能少的警告信息 qtdebug:应用程序将以debug模式连编。

      qtthreaddebug:连编为一个可调试的多线程的应用程序2021/7/2212Qt2包含的模块pQtCore和图形无关的核心模块pQtGui所有的图形模块pQtNetWork网络相关的模块pQtOpenGL 支持OpenGLpQtSqlQT支持数据库开发模块pQtSvg定义和生成SVG类pQtXML读取XML文件模块pQtDesignerQt的图形界面设计pQtUiTool定义在应用程序中直接处理ui文件的类pQt3Support Qt3版本的支持pQtAssistant 定义和扩展Qt设计器的类2021/7/2213qmake命令p qmake可以根据实际文件自动生成相对应makefile文件,命令格式:qmake options files 2021/7/2214Qt体系架构图2021/7/2215qmake编译Qt次序qmake工程文件(pro)qmake -projectqmakeMakefile文件p首先使用qmake project选项命令,根据当前源代码生成后缀名为pro的工程文件p其次再次调用qmake命令或者执行qmake o Makefile helloworld.pro自动生成Makefile文件2021/7/2216Qtopia添加线程支持p由于qtopia2.2.0的makefile里的问题,现在只能自己手动编译出支持thread的libqte-mt.so.* 进入qtopia-2.2.0-FriendlyARM/qt2目录手动配置来支持multi-thread 如果编译的是x86版本那么执行./configure-embedded-no-xft-qconfigqpe-depths16,32-system-jpeg-gif-thread 如果编译的是arm版本那么执行./configure-embedded-no-xft-qconfigqpe-depths16,32-system-jpeg-qt-zlib-qt-libpng-gif-no-g+-exceptions-no-qvfb-xplatformlinux-arm-g+-tslib-thread 上面的步骤执行后会在当前目录下产生src-mt.mk文件,用编辑器将其内容的最后一行”cdsrc;$(MAKE)clean“删除或注释掉 编译libqte-mt:makesrc-mtp编译完成后将在qtopia-2.2.0-FriendlyARM/qtopia/lib目录下生成所期待的libqte-mt.so.*文件2021/7/2217Qt布局管理器绝对位置方式p这种方式是通过QWidge提供的setGeometry()函数来设置子窗口部件大小和在父窗口的位置p但是绝对位置方式缺点是:如果父窗口大小发生改变,子窗口部件无法做出相应变化2021/7/2218setGeometry()函数p指定子部件在父窗体中所处的位置和大小voidQWidget:setGeometry(intx,inty,intw,inth)参数说明:x:表示子部件在父窗体行的位置y:表示子部件在父窗体列的位置w:表示子部件宽度h:表示子部件的高度2021/7/2219绝对位置示例#include#include#includeintmain(intargc,char*argv)QApp。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.