Qt简要入门

经常在网上看到一些朋友关于如何安装和使用Qt的问题,一直以为大家好好看看Qt文档就可以解决问题的,不过看来不把这样一个文档放在最显眼的位置,大家肯定还是会有些疑问的。开始试着写这样一个文档,肯定存在很多问题,欢迎大家多提建议,我会慢慢改进的。谢谢了。

因为Qt提供了自由的版本,所以这里就只讨论Qt自由版。

下载

Qt X11自由版

安装

假设你把上面下载的文档放到了/root下吧。

cd /root

如果是tar.gz文件:

tar zxvf qt-x11-version.tar.gz

如果是tar.bz2文件

tar jxvf qt-x11-version.tar.gz

这样会生成/root/qt-version目录。这里的version是指实际的版本号。目前Qt的版本都已经到3.3.1了,就不讨论2.x了。

mv /root/qt-version /usr/local/qt

把目录移到/usr/local下吧,当然你也可以把它移到别的地方。

下面来配置参数,我们就假设用的是bash、ksh、zsh或者sh吧。

编辑自己的配置文件($HOME/.bash_profile或者$HOME/.profile)或者系统的配置文件(/etc/profile),添加如下几行(文本编辑就不用再教了吧,vi、emacs、kate、gedit都可以):

QTDIR=/usr/local/qt

PATH=$QTDIR/bin:$PATH

MANPATH=$QTDIR/man:$MANPATH

LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QTDIR PATH MANPATH LD_LIBRARY_PATH

保存(记得一定要保存)。

然后注销,重新登录系统,使配置文件生效。或者不注销,可以使用source命令,用法:

source $HOME/.bash_profile

进入Qt的源码目录:

cd /usr/local/qt

开始编译:

./configure

会看到一个你是不是同意GPL/QPL的协议的问题,敲入yes回车即可。

X11下的自由版,默认是不带多线程支持的,如果大家想建立带多线程支持的库:

./configure -thread

其实还有很多其它配置参数,大家以后再学习就可以了。

./configure -help

可以列出所有的可选参数。

make

一般需要一两个小时,不要着急。

编译好之后,帮助文档在/usr/local/qt/doc/html,主页是/usr/local/qt/doc/html/index.html,实例都在/usr/local/qt/examples。

qmake的使用

编程需要使用makefile,我想大家都应该知道吧。不过在Windows下很多朋友因为长期使用IDE已经不太了解它底层的编译过程了,建议大家稍微看一下有关这方面的资料。有关makefile的写法,建议大家到网上去查找有关资料。Linux相关的工具是autoconf/automake,网上有关它们的文章也不少。

这里我们就介绍一下Trolltech提供的qmake。

Qt中就自带了qmake,一般在$QTDIR/qmake下就是。当然编译好的二进制程序都放在$QTDIR/bin下了。

有一个比较重要的环境变量QMAKESPEC,是用来表明操作系统和编译器的,一般我们用的都是linux-g++。

下面就写个简单的例子:

    SOURCES = hello.cpp \
		main.cpp
    HEADERS = hello.h
    CONFIG += qt warn_on release

我们假设你的应用程序是有main.cpp、hello.h、hello.cpp三个文件构成。上述文件内容就是hello.pro文件的内容。这四个文件在同一目录下。

生成makefile:

    qmake -o Makefile hello.pro

这样就会生成这个项目的Makefile了。

qmake还可以为visual studio生成dsp文件:

    qmake -t vcapp -o hello.dsp hello.pro

程序的编译

有了Makefile之后的编译方法如下:

linux下就是用make就可以了:

    make

windows下就是用nmake就可以了:

    nmake

这样就会生成相应的二进制程序了。

关于qmake的详细用法,在Trolltech的相关文档中有更详尽的描述,请参考qmake用户手册

关于本文,有什么意见或者建议的话,请来信指教,谢谢。


mailto:webmaster@qiliang.net
2004年2月25日