1. 什么是QT?
Qt是一个多平台的C++图形
用户界面应用程序框架,它和Microsoft的MFC,以及Microsoft捐献给OpenSource的WTL类库一样,为应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
自从1996年早些时候,Qt进入
商业领域,它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的
Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。Qt支持下述平台:
- MS/Windows –从Windows 95之后的大部分Windows版本。
- Unix/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
- Macintosh – Mac OS X
- Embedded – 有帧缓冲(framebuffer)支持的Linux平台。
2. 为什么学习QT?
长期以来困扰QT发展的是其
授权问题,但是Nokia在发布QT 4.5版本的同时,第一次允许LPGL
授权,这意味着你可以用QT开发自有知识产权的商业闭源软件。因此QT成为Linux桌面应用开发的首选类库,同时也是Windows桌面应用开发的重要补充。关于QT与MFC,WTL的比较,详细另述。
3. 建立QT开发环境。
通常来说 ,QT的源代码可以不加修改的在各种平台上编译并且
可能效果一致,(事实上,
错误在所难免),因此我个人倾向选择Windows平台,并用Visual studio或者免费的Visual studio Express作为QT的开发环境。
首先你至少要已经安装了visual studio或者visual studio Express,免费的Express版可以从这里下载,它和Visutal studio有着一致的操作界面。安装之后,你同时也就安装了
VC++ SDK。
编译QT Source需要用到MingW的
头文件,MingW提供了一套Windows下的GNU的工具集,其中的W32api.h是我们需要头文件,MingW项目提供了方便的
在线安装,下载并运行MingW-5.16.exe,组件只需选择G++ compiler和MingW Make,所需的头文件将安装在“C:\MingW” 目录下。
Nokia提供了2个版本的QT下载,QT SDK和QT Source,推荐下载QT Source,这个包要小一些。QT source是个自解压的文件安装包,解压过程中会要求输入MinGW的路径,输入入"C:\MinGW",接着它会提示W32API.h的版本不对,直接忽略该提示,我个人
习惯把QT解压到"C:\QT"。
4.6之后,QT的源文件以压缩包的方式提供,可以省略下MingW这些步骤了。
到此,编译QT的所有环境已经准备就绪了。
打开Visual
Studio 2008的Commond prompt,(一般在Visual studio tools里头)接下来要运行一系列命令:
1. 在根目录下创建目标文件夹QT4 ( md qt4)
2. 切换到QT目录 (cd qt)
2. 将QT目录的mkspecs子目录拷贝到QT4里 (xcopy mkspecs /s c:\qt4\mkspecs)
4. 运行配置: configure -
debug-and-release -prefix "C:\QT4"
5. 运行VC++的nmake命令
6. 安装nmake install
整个编译过程可能要持续10个小时,所以最好是在睡觉前执行编译命令!编译过程大概需要6G
硬盘空间,请预留足够空间。6个步骤执行完之后,在QT4目录下就得到所需的QT发布版。你会
发现许多名字类似的文件,其中有些带有"d"的为debug版。
如果你想节约磁盘空间,这时可以
卸载掉QT source和MingW,并删除QT和MinGW目录。得到的QT发布版大概有400多M.
接着需要设置一下环境变量:
Set QTDIR=C:\QT4
Set PATH=%QTDIR%\bin;%PATH%
如图:
Nokia提供了一个Visual Studio的插件,目前版本是1.1.1,下载并安装。这个插件写得并不好,安装之后会有许多奇怪奇怪的问题:
1. Can not find a QT build之类的问题,通常是插件安装过程中,未正确更新
注册表导致的。如果你的安装路径和我介绍的一致,则可以直接导入这个注册表来修复问题。否则需修改最后几行的安装路径。
2. 打开Visual studio的QT菜单中的QT option,报告无法取得QT版本的错误,
解决方法是在C:\QT4的目录下创建一个空的文件叫“
.qmake.cache”,注意文件是以"."开头的,该文件无需实际内容。
建立一个空白的QT项目并试着运行之。如果一切正确的话,你的Visual Studio应该看起来象这样:
至此你已经完全建立QT的运行环境,可以从Visual studio的向导里创建你自己的QT项目了!
创建项目中常见问题解决办法:
1. 在win 7上,VS2008在编译项目过程中可能出现:
error c101008d: Failed to write the updated manifest to the resource of file,
解决方法 <1> :在项目属性->manifest tools->input and output选项卡中embed manifest的值改成NO.
解决方法 <2> :下载VS 2008 SP1 大概800多M.
4.6.2编译错误
The errors appear in the following
files (the two files are identical, and the errors need to be fixed in each):
%QTDIR%\qt\src\3rdparty\webkit\
javascriptcore\runtime\StructureTransitionTable.h
%QTDIR%\qt\src\3rdparty\javascriptcore\JavaScriptCore\runtime\StructureTransitionTable.h
Here are the errors and how to fix them:
%QTDIR%\qt\src\3rdparty\webkit\javascriptcore\runtime\StructureTransitionTable.h(146) : table()->add(key, Transition(structure, 0));
Change it to table()->add(key, Transition(structure, nullptr));
%QTDIR%\qt\src\3rdparty\webkit\javascriptcore\runtime\StructureTransitionTable.h(153) : table()->add(key, Transition(0, structure));
Change it to table()->add(key, Transition(nullptr, structure));
Make the same two changes for %QTDIR%\qt\src\3rdparty\javascriptcore\JavaScriptCore\runtime\StructureTransitionTable.h