一下载QT3.3.2版本的windows安装包
可以在我们学校的FTP上下到
ftp://211.68.71.81/newmirror/pub/Develop/Qt/Trolltech.Qt.Enterprise.v3.3.2-ROR.zip
版本不是最新的,但是也已经够用了.里面自带了一个liciense,安装的时候读取就可以了.
安装一般不会有问题.在安装的过程中会提示你是否集成到IDE中,这时候看你用的是什么IDE了
勾上对应的就行了.
二.测试是否安装成功
新建一个目录hello,创建hello.cpp
>qmake -project (这个命令会生成一个qt的工程文件,默认名字是目录名)
>qmake (生成Makefile文件,用于编译链接时用)
>nmake (VS的编译器,按照Makefile进行编译链接,生成exe文件)
如果没有问题那么在目录下面将会生成一个hello.exe的文件,运行.
我们也可以使用如下命令生成vc的工程文件,即.dsp文件
>qmake -tp vc hello.pro (根据qt工程文件生成vc工程文件)
打开hello.dsp,进入vc6,选择菜单Tools->Customize..->Add-ins and Macro Files勾选上qt的插件
然后现在我们也可以在vc6中直接编译运行了.
除了命令行方式,我们也可以采用其自带的工具栏上的New QT Project的功能,直接在IDE中进行qt的开发.
细节省略.
注意一个问题,如果我们是利用了vc6的New Project(不是qt的New Project),然后生成一个win32的工程的话,也可以用来编写qt程序.源代码编写方式一样,只需要在qt工具栏上点击"应用QT到当前工程",然后重启IDE即可在当前工程中使用qt了.不过如果程序中运用到了Q_OBJECT这样的宏的时候,由于qt的元编程特性,使到vc6在链接的时候会出现错误.错误信息可能如下
可以在我们学校的FTP上下到
ftp://211.68.71.81/newmirror/pub/Develop/Qt/Trolltech.Qt.Enterprise.v3.3.2-ROR.zip
版本不是最新的,但是也已经够用了.里面自带了一个liciense,安装的时候读取就可以了.
安装一般不会有问题.在安装的过程中会提示你是否集成到IDE中,这时候看你用的是什么IDE了
勾上对应的就行了.
二.测试是否安装成功
新建一个目录hello,创建hello.cpp
1
#include
<
QApplication
>
2 #include < QLabel >
3
4 int main( int argc, char ** argv) {
5 QApplication app(argc, argv);
6 QLabel * label = new QLabel( " Hello QT World! " );
7 label -> show();
8 return app.exec();
9 }
这个一个最简单的QT应用,然后我们从命令行下进入该目录
2 #include < QLabel >
3
4 int main( int argc, char ** argv) {
5 QApplication app(argc, argv);
6 QLabel * label = new QLabel( " Hello QT World! " );
7 label -> show();
8 return app.exec();
9 }
>qmake -project (这个命令会生成一个qt的工程文件,默认名字是目录名)
>qmake (生成Makefile文件,用于编译链接时用)
>nmake (VS的编译器,按照Makefile进行编译链接,生成exe文件)
如果没有问题那么在目录下面将会生成一个hello.exe的文件,运行.
我们也可以使用如下命令生成vc的工程文件,即.dsp文件
>qmake -tp vc hello.pro (根据qt工程文件生成vc工程文件)
打开hello.dsp,进入vc6,选择菜单Tools->Customize..->Add-ins and Macro Files勾选上qt的插件
然后现在我们也可以在vc6中直接编译运行了.
除了命令行方式,我们也可以采用其自带的工具栏上的New QT Project的功能,直接在IDE中进行qt的开发.
细节省略.
注意一个问题,如果我们是利用了vc6的New Project(不是qt的New Project),然后生成一个win32的工程的话,也可以用来编写qt程序.源代码编写方式一样,只需要在qt工具栏上点击"应用QT到当前工程",然后重启IDE即可在当前工程中使用qt了.不过如果程序中运用到了Q_OBJECT这样的宏的时候,由于qt的元编程特性,使到vc6在链接的时候会出现错误.错误信息可能如下
main.obj :
error
LNK2001: unresolved external symbol
..qt_property(int,int,class QVariant *)
"
(?qt_property@MyWidget@@UAE_NHHPAVQVariant@@@Z)
main.obj : error LNK2001: unresolved external symbol ..qt_emit(int,struct QUObject *) " (?qt_emit@MyWidget@@UAE_NHPAUQUObject@@@Z)
main.obj : error LNK2001: unresolved external symbol .qt_invoke(int,struct QUObject *) " (?qt_invoke@MyWidget@@UAE_NHPAUQUObject@@@Z)
main.obj : error LNK2001: unresolved external symbol ..qt_cast(char const *) " (?qt_cast@MyWidget@@UAEPAXPBD@Z)
这个时候就还是得用命令行的方式才产生一个vc工程文件,在产生的过程中,nmake会根据Makefile文件自动调用moc元对象解释器,将qt宏代码转换成标准C++代码,这时候你再打开工程,会发现多了一些moc_前缀的文件,那些就是经过moc解释过的.再编译链接就没错了.
main.obj : error LNK2001: unresolved external symbol ..qt_emit(int,struct QUObject *) " (?qt_emit@MyWidget@@UAE_NHPAUQUObject@@@Z)
main.obj : error LNK2001: unresolved external symbol .qt_invoke(int,struct QUObject *) " (?qt_invoke@MyWidget@@UAE_NHPAUQUObject@@@Z)
main.obj : error LNK2001: unresolved external symbol ..qt_cast(char const *) " (?qt_cast@MyWidget@@UAEPAXPBD@Z)