QT.docx
- 文档编号:7561352
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:37
- 大小:1.90MB
QT.docx
《QT.docx》由会员分享,可在线阅读,更多相关《QT.docx(37页珍藏版)》请在冰豆网上搜索。
QT
零、Qt与QtCreator介绍
本文章原创于转载请注明出处。
前言:
自从2009年十月我在博客上写了第一篇QtCreator系列教程到现在,断断续续一共写了四十八篇,涵盖了Qt基础、绘图、数据库、QtQuick和网络等主要应用方面的内容。
虽然其中的内容很基础,但这也正是入门的读者所想要的,现在这个系列的读者已经超过了3万,很感谢大家对我的支持。
因为当时开始写教程时并没有想得那么系统,所以就成了想到哪写哪。
在现在看来,上来第一篇就是helloworld的编写,从来没有涉及Qt的介绍,感觉这对于一个Qt系列的教程来说是个缺陷。
所以,现在我补上了这第零篇,来对Qt和QtCreator进行一个大体上的介绍,其实,下面的内容都是整理自Qt官方网站。
因为QtCreator系列教程好像有半年没有更新了,很多网友问我还会不会写下去。
这里告诉大家,还是以前的话,我们的教程会一直写下去的,直到什么时候呢?
或许会持续到Qt已经没落到无人问津的时候吧!
☺
最后再次感谢大家对该系列教程和我们网站的支持,谢谢大家!
——————–yafeilinux2011-2-23
一、Qt与QtCreator简介
Qt是一个跨平台应用程序和UI开发框架。
使用Qt您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
QtCreator 是全新的跨平台QtIDE,可单独使用,也可与Qt库和开发工具组成 一套完整的SDK.其中包括:
高级C++代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。
二、Qt功能与特性
直观的C++类库:
模块化QtC++类库提供一套丰富的应用程序生成块(block),包含了构建高级跨平台应用程序所需的全部功能。
具有直观,易学、易用,生成好理解、易维护的代码等特点。
跨桌面和嵌入式操作系统的移植性:
使用Qt,您只需一次性开发应用程序,就可跨不同桌面和嵌入式操作系统进行部署,而无须重新编写源代码,可以说Qt无处不在(QtEverywhere)。
∙使用单一的源代码库定位多个操作系统;
∙通过重新利用代码可将代码跨设备进行部署;
∙无须考虑平台,可重新分配开发资源;
∙代码不受担忧平台更改影响的长远考虑 ;
∙使开发人员专注于构建软件的核心价值,而不是维护API。
具有跨平台IDE的集成开发工具:
QtCreator是专为满足Qt开发人员需求而量身定制的跨平台集成开发环境(IDE)。
QtCreator可在Windows、Linux/X11和MacOSX桌面操作系统上运行,供开发人员针对多个桌面和移动设备平台创建应用程序。
在嵌入式系统上的高运行时间性能,占用资源少。
三、QtCreator功能和特性
复杂代码编辑器:
QtCreator的高级代码编辑器支持编辑C++和QML(JavaScript)、上下文相关帮助、代码完成功能、本机代码转化及其他功能。
版本控制:
QtCreator汇集了最流行的版本控制系统,包括Git、Subversion、Perforce、CVS和Mercurial。
集成用户界面设计器:
QtCreator提供了两个集成的可视化编辑器:
用于通过Qtwidget生成用户界面的QtDesigner,以及用于通过QML语言开发动态用户界面的QtQuickDesigner*。
项目和编译管理:
无论是导入现有项目还是创建一个全新项目,QtCreator都能生成所有必要的文件。
包括对cross-qmake和Cmake的支持。
桌面和移动平台:
QtCreator支持在桌面系统和移动设备中编译和运行Qt应用程序。
通过编译设置您可以在目标平台之间快速切换。
Qt模拟器:
Qt模拟器是诺基亚QtSDK的一部分,可在与目标移动设备相似的环境中对移动设备的Qt应用程序进行测试。
四、Qt的历史
∙1996年Qt上市
∙Qt已成为数以万计商业和开源应用程序的基础
∙Qt的软件授权机制具有经受市场检验的双重授权(开源与商业)模式
∙QtSoftware的前身为Trolltech(奇趣科技)。
Trolltech(奇趣科技)始创于1994年
∙Trolltech(奇趣科技)于2008年6月被Nokia收购,加速了其跨平台开发战略
五、Qt所支持的平台
1.嵌入式Linux(EmbeddedLinux)
QtforEmbeddedLinux®是用于嵌入式Linux所支持设备的领先应用程序架构。
您可以使用Qt创建具有独特用户体验的具备高效内存效率的设备和应用程序。
Qt可以在任何支持Linux的平台上运行。
Qt的直观API,让您只须少数几行代码便可以更短的时间实现更高端的功能。
特点:
1.用于Linux的紧凑的视窗系统;2.用于广泛的应用程序处理器的开发;3.移植桌面代码至嵌入式平台,或通过重新编译,反之亦然;4.编译移除不常使用的组件与功能;5.利用系统资源并实现本地化性能;6.开发嵌入式设备犹如开发桌面系统一样轻松简单。
Qt除了提供所有 工具 以及API与 类库 ,(如WebKit)外,QtforEmbeddedLinux还提供用于最优化嵌入式开发环境的主要组件。
紧凑高效的视窗系统(QWS):
Qt构建在标准的API上,应用于嵌入式Linux设备,并带有自己的紧凑视窗系统。
基于Qt的应用程序直接写入Linux帧缓冲,解除了您对X11视窗系统的需求。
具有减少内存消耗,占位更小,可利用硬件加速图形的优势,可编译移除不常使用的组件与功能等特点。
虚拟帧缓冲(QVFb):
QtforEmbeddedLinux提供一个虚拟帧缓冲器,可以采用点对点逐像素匹配物理设备显示。
具有真实的测试构架,在桌面系统上嵌入式测试,模拟物理设备显示的宽度、高度与色深等特点。
进程间通讯(IPC):
IPC(进程间通讯)可以创建丰富的多应用程序用户体验。
定义进程间通讯的两个主要概念即:
信道与消息。
可以进程监听并向信道发送消息,任何时候只要监听到一个进程便可创建信道。
扩展的字体格式:
Qt支持嵌入式Linux上的多种字体格式,包括:
TrueType®,Postscript®Type1与Qt预呈现字体。
Qt扩展了Unicode支持,包括:
构建时自动数据抽取和运行时自动更新。
另外Qt还提供定制字体格式的插件,允许在运行时轻松添加新字体引擎。
应用程序间的字体共享功能可以提高内存效率。
基本要求:
开发环境:
Linux 内核2.4或更高;GCC版本3.3或更高;用于MIPS®GCC版本3.4.或更高。
占用存储空间:
存储空间取决于配置,压缩后:
1.7–4.1MB,未压缩:
3.6–9.0MB。
硬件平台:
易于载入任何支持带C++编译器和帧缓冲器驱动Linux的处理器。
支持ARM®,x86®,MIPS®,PowerPC®。
2.Mac平台
Qt包括一套集成的开发工具,可加快在Mac平台上的开发。
在编写Qt时,并不需要去设想底层处理器的数字表示法、字节序或架构。
要在Apple平台上支持Intel硬件,Qt客户只需重新编辑其应用程序即可。
3.Windows平台
使用Qt,只需一次性构建应用程序,无须重新编写源代码,便可跨多个Windows操作系统的版本进行部署。
Qt应用程序支持WindowsVista、Server2003、XP、NT4、Me/98和WindowsCE。
4.Linux/X11平台
Qt包括一套集成的开发工具,可加快在X11平台上的开发。
Qt由于是 KDE桌面环境的基础,在各个Linux社区人尽皆知。
几乎KDE中的所有功能都是基于Qt开发的,而且Qt是全球社区成员用来开发 成千上万的开源KDE应用程序的基础。
5.WindowsCE/Mobile
Qt是用C++开发的应用程序和用户界面框架。
通过直观的API,您可以使用Qt为大量的设备编写功能丰富的高性能应用程序。
Qt包括一套丰富的工具集与直观的API,意味着只须少数几行代码便可以更短的时间实现更高端的功能。
主要特点:
1.硬件依存性极小;2.支持多数现有的WindowsCE配置;3.对于自定义的硬件配置亦轻松构建;4.移植桌面代码至嵌入式平台,或通过重新编译,反之亦然;5.编译移除不常使用的组件与功能;6.利用系统资源并实现高性能;7.开发嵌入式设备尤如开发桌面系统一样轻松简单。
Qt除了提供所有 工具 以及API与 类库 外,QtforWindowsCE还提供用于最优化嵌入式开发环境的附加功能。
本地化和可定制的外观:
Qt在使用时,可以支持WindowsMobile和WindowsCE两种样式。
在运行时,Qt应用程序将检测使用哪一种样式。
采用Qt样式表单,您只需要花费用于传统UI风格的少许时间和代码行,便可以轻松定制您的应用程序外观。
特点:
基于HTML层叠式样式表(CSS);适用于全部widget;任何熟悉CSS技术的人员都可以定义复杂的样式。
先进的文本布局引擎:
QtforWindowsCE支持TrueType®和点阵字体。
同时Qt还支持扩展的Unicode和从右至左的书写语言。
Qt的富文本引擎增加了新的功能用于复杂的文本布局,包括制表和路径追踪,以及环绕图形的文本。
基本要求:
开发环境:
Microsoft®VisualStudio®2005(StandardEdition)或更高ActivePerl 。
占用存储空间:
紧凑配置–4.8MB,全配置–8.4MB。
操作系统:
WindowsCE5或更高,WindowsMobile5或更高。
硬件平台:
支持ARM®,x86®,(在SH4®和MIPS®上编译)。
6.塞班平台(Symbian)
Qt通过和S60框架的集成为Symbian平台提供了支持。
在最新版的QtSDK1.1中我们可以直接生成可以在塞班设备上运行的sis文件。
7.MeeGo平台(Maemo6现更名为MeeGo)
Qt是一个功能全面的应用程序和用户界面框架,用来开发Maemo应用程序,也可跨各主要设备和桌面操作系统部署这些程序且无需重新编写源代码的。
如果您在多数情况下开发适用于Symbian、Maemo或MeeGo平台的应用程序,可以使用免费LGPL授权方式的Qt。
Qt将为诺基亚设备运行MeeGo(Harmattan)提供依托,并可为所有即将推出的MeeGo设备中的应用程序开发提供API,为Qt开发人员提供了更多平台。
不久,MeeGo设备就会完全支持(X11)Qt。
六、Qt类库
模块化QtC++类库提供一套丰富的应用程序生成块(block),包含了生成高级跨平台应用程序所需的全部功能。
1.先进的图形用户界面(GUI):
Qt为您在桌面与嵌入式平台上开发先进的GUI应用程序,带来所有需要的功能。
Qt使用所支持平台的本地化图形API,充分利用系统资源并给予应用程序本地化的界面。
从按钮和对话框到树形视图与表格都具有完整的控件(窗体)
自动缩放,字体、语言与屏幕定位识别布局引擎
支持抗锯齿、矢量变形以及可缩放矢量图形(SVG)
具有样式API和窗体样式表,可完全自定义用户界面
支持嵌入式设备的硬件加速图形和多重显示功能
2.基于OpenGL®与OpenGL®Es的3D图形:
OpenGL®是一个标准的图形库,用于构建跨平台和支持硬件加速的高性能可视化应用程序。
虽然OpenGL完美支持3D图形,但却不支持创建应用程序用户界面。
Qt通过与OpenGL的紧密集成解决了这一难题。
在您的应用程序中轻松加入3D图形
在嵌入式Linux与WindowsCE平台上使用OpenGLES和OpenGL绘画引擎
利用系统资源实现最佳图形性能
支持Windows平台上的Direct3D®
3.多线程:
多线程编程是一个执行资源密集型操作而不会冻结应用程序用户界面的有效典范。
Qt的跨平台多线程功能简化了并行编程,另外它附加的同步功能可以更加轻松地利用多核架构。
管理线程、数据和对象更加轻松
基于Qt的信号与槽,实现跨线程类型安全的对象间通讯
高端API可以编译多线程程序而无须使用底端基元
4.嵌入式设备的紧凑视窗系统:
Qt构建在标准的API基础上,用于具有轻量级window系统的嵌入式Linux设备。
基于Qt的应用程序直接写入Linux帧缓冲,解除了您对X11视窗系统的需求。
减少内存消耗,内存占用更小
可以编译移除不常使用的组件与功能
可以利用硬件加速图形
在桌面系统上的虚拟帧缓冲可用于嵌入式开发与调试
5.对象间通讯:
在开发用户图形界面中,一个常见的、重复发生系统崩溃与问题的症结根源是如何在不同组件之间进行通信。
对于该问题,Qt的解决方案是信号与槽机制,即执行Observer设计模式。
我们可以简单理解为当特殊事件发生的时候,信号就被发出了,一个插槽就是一个函数,被称作特定信号的响应。
信号与槽机制是类型安全的(typesafe)
任意信号都可以连接任意或多个插槽,或跨多个线程
简化真正的组件编程
6.2D图形:
Qt给您提供一个功能强大的2D图形画布,用以管理和集成大量的图形元素。
高精度可视化大量元素
将窗体互动嵌入至图形场景中
支持缩放、旋转、动画与透视变换
7.多媒体框架:
Qt使用Phonon多媒体框架为众多的多媒体格式提供跨桌面与嵌入式操作系统的回放功能。
Phonon可以轻松将音频与视频回放功能加入到Qt应用程序当中,并且在每个目标平台上提取多媒体格式与框架。
以平台独立的方式提供多媒体内容
从本地文件读取媒体或读取网络上的流媒体
提取Mac上的QuickTime®,Windows上的DirectShow®以及Linux上的Gstreamer
8.WebKit集成:
QtWebKit集成,即Qt集成了WebKit功能,WebKit是KDE项目下基于KHTML的开放源web浏览器引擎。
目前Apple®,Google™与Nokia等公司使用QtWebKit集成。
将web与本地内容和服务整合在单一的富应用程序当中
快速创建整合实时web内容与服务的应用程序
使用集成在本地代码中的HTML与JavaScript
完全控制跨平台的浏览器环境
9.网络连接:
Qt让您网络编程更简单,并支持跨平台网络编程。
完整的客户/服务器插口提取
支持HTTP,FTP,DNS与异步HTTP1.1
无论HTML和XML或图象与媒体文件,它都可以存取所有类型的数据
10.XML:
Qt为XML文件以及SAX和DOM协议的C++实现,提供了一个流媒体文件读写器。
同时Qt还包含了XQuery–一个简单的类似SQL的查询语言,用于解析XML文件来选择和聚合所需要的XML元素,并且将它们转换成XML输出或其它格式的输出。
仅需少数几行代码便可实现先进的XML查询
完全支持XQuery1.0和XPath2.0
在您自己的应用程序中从XML查询、抽取和转换数据
11.脚本引擎:
Qt包含一个完全集成ECMA标准的脚本引擎。
QtScript提供QObject集成,把Qt的信号与槽机制整合成脚本,并且实现了C++与脚本的集成。
基于ECMA标准的脚本语言(ECMAScript3是JavaScript1.5的基础)
为简化的对象间通讯使用Qt的信号与槽机制
开创新的契机将脚本与您的Qt应用程序相集成
12.数据库:
Qt帮助您将数据库与您的Qt应用程序无缝集成。
Qt支持所有主要的数据驱动,并可让您将SQL发送到数据库服务器,或者让QtSQL类自动生成SQL查询。
支持所有主要的数据库驱动
以多种视图或数据识别表单方式显示数据
七、QtQuick介绍
QtQuick是在Qt4.7中被引进的一项技术。
QtQuick是一种高级用户界面技术,开发人员和设计人员可用它协同创建动画触摸式用户界面和应用程序。
它由三部分构成:
1.QML:
像JavaScript一样的声明式语言;2.QtCreator:
在 QtIDE中的直观工具;3.QtDeclarative:
强大的C++模块。
1.主要组成:
QML:
基于JavaScript的直观语言 :
QML是一种简便易用的语言,开发人员与用户界面设计人员无需任何C++知识,即可用其描绘出用户界面的外观和功能。
面向开发人员和设计人员的共享工具:
QtCreatorIDE2.1版将集成一套开发人员与用户界面设计人员可共享,用以创建和实施QtQuick项目的通用工具。
通过C++推动QML应用程序:
在Qt库中的全新Declarative模块支持生成动态可定制的用户界面,以及通过C++拓展QML应用程序。
2.功能特点:
快速开发动画式流畅多变的用户界面:
通过直观的QML语言和一套丰富的 QMLElements——UI和行为生成块——您可以快速创建出令人印象深刻的用户界面,比您想象的还要快。
无需C++知识:
如果您具有JavaScript的经验或掌握基本的网络技术(如HTML和CSS),您就可以通过QML取得非常不错的成果。
瞄准数以百万计的触摸屏设备:
使用QtQuick,您可以为数以百万计的Symbian和MeeGo设备生成应用程序,或为各种类型的触摸屏消费类电子设备创建用户界面。
3.应用领域:
汽车信息娱乐系统UI:
CybercomGroup的用户界面设计人员与开发人员尝试使用QtQuick为其汽车信息娱乐平台设计UI——并取得了令人满意的结果。
社交媒体电视:
mixd.tv使用QtQuick为其跨平台网络电视应用程序创建UI,其用户可以通过社交媒体频道访问和共享在线视频的内容。
联网汽车:
Qt的认证合作伙伴Digia很快学会了QtQuick并用其创建出了包括导航、电话、游戏和音乐功能的高级汽车UI。
一、QtCreator的安装和helloworld程序的编写
本文章原创于转载请注明出处。
我们这里讲述windows下的QtCreator,在linux下基本相同。
本文先讲述基本的下载、安装和最简单程序的编写,然后在附录里又讲解了两种其他的编写程序的方法。
1.首先到Qt的官方网站上下载QtCreator,这里我们下载windows版的。
下载地址:
QtSDKforWindows*(178Mb)
下载完成后,直接安装即可,安装过程中按默认设置即可。
2.运行QtCreator,首先弹出的是欢迎界面,这里可以打开其自带的各种演示程序。
3.我们用File->New菜单来新建工程。
4.这里我们选择Qt4GuiApplication。
5.下面输入工程名和要保存到的文件夹路径。
我们这里的工程名为helloworld。
6.这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所以直接点击Next。
7.我们将baseclass选为QDialog对话框类。
然后点击Next。
8.点击Finish,完成工程的建立。
9.我们可以看见工程中的所有文件都出现在列表中了。
我们可以直接按下下面的绿色的run按钮或者按下Ctrl+R快捷键运行程序。
10.程序运行会出现空白的对话框,如下图。
11.我们双击文件列表的dialog.ui文件,便出现了下面所示的图形界面编辑界面。
12.我们在右边的器件栏里找到Label标签器件
13.按着鼠标左键将其拖到设计窗口上,如下图。
14.我们双击它,并将其内容改为helloworld。
15.我们在右下角的属性栏里将字体大小由9改为15。
16.我们拖动标签一角的蓝点,将全部文字显示出来。
17.再次按下运行按钮,便会出现helloworld。
到这里helloworld程序便完成了。
QtCreator编译的程序,在其工程文件夹下会有一个debug文件夹,其中有程序的.exe可执行文件。
但QtCreator默认是用动态链接的,就是可执行程序在运行时需要相应的.dll文件。
我们点击生成的.exe文件,首先可能显示“没有找到mingwm10.dll,因此这个应用程序未能启动。
重新安装应用程序可能会修复此问题。
”表示缺少mingwm10.dll文件。
解决这个问题我们可以将相应的.dll文件放到系统中。
在QtCreator的安装目录的qt文件下的bin文件夹下(我安装在了D盘,所以路径是D:
\Qt\2009.04\qt\bin),可以找到所有的相关.dll文件。
方法一:
在这里找到mingwm10.dll文件,将其复制到C:
\WINDOWS\system文件夹下即可。
下面再提示缺少什么dll文件,都像这样解决就可以了。
方法二:
将这些dll文件都与.exe文件放到同一个文件夹下。
不过这样每个.exe文件都要放一次。
方法三:
将D:
\Qt\2009.04\qt\bin加入系统Path环境变量。
右击我的电脑->属性->高级->环境变量->在系统变量列表中找到Path,将路径加入其中即可。
附1:
用纯源码编写。
1.新建空的Qt4工程。
2.工程名为helloworld,并选择工程保存路径(提示:
路径中不能有中文)。
3.在新建好的工程中添加文件。
右击工程文件夹,弹出的菜单中选择AddNew。
4.选择普通文件。
点击Ok。
5.文件名为main.cpp,点击Next进入下一步。
6.这里自动将这个文件添加到了新建的工程中。
保持默认设置,点击完成。
7.在main.cpp文件中添加代码。
8.这时点击运行,程序执行了,但看不到效果,因为程序里什么也没做。
我们点击信息框右上角的红色方块,停止程序运行。
9.我们再更改代码。
添加一个对话框对象。
10.运行效果如下。
11.我们更改代码如下,在对话框上添加一个标签对象,并显示helloworld。
12.运行效果如下。
附2:
利用ui文件。
1.建立新的空工程,这里的工程名为hello,建立好工程后,添加新文件。
这里添加QtDesignerForm。
2.选择一个对话框做模板。
3.你可以更改文件名,我们这里使用默认设置。
4.在新建好的框口上添加一个标签,并更改文本为hellowor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QT