QT 桌面安装与建立运行环境

移动开发
本文介绍的是QT 桌面安装与建立运行环境,关于Embedded相关内容请详细参考本文。我们先来看内容。

QT 桌面安装与建立运行环境是本文介绍的内容,在Trolltech公司的网站上可以下载该公司所提供的Qt/Embedded 的免费版本,在安装产品光盘以后,本次实验目录下已有要下载的文件,在/arm2410s/gui/Qt/src 下。在做实验前把本次实验用到的三个文件拷贝到/root/2410sQt 目录下。

  1. [root@BC root]#cd /root/  
  2. [root@BC root]#mkdir 2410sQt  
  3. [root@BC root]#cd /arm2410dev/gui/Qt/src  
  4. [root@BC src]#cp -arf tmake-1.13.tar.gz qt-embedded-2.3.10-free.tar.gz  
  5. qt-x11-2.3.2.tar.gz /root/2410sQt 

安装编译器arm-linux-gcc-3.4.1:

  1. [root@BC src]#cd /arm2410dev/gui/Qt/tools  
  2. [root@BC tools]#tar xjvf arm-linux-gcc-3.4.1.tar.bz2 -C ./  
  3. [root@BC tools]#vi /root/.bash_profile //打开文件 

将该文件中的PATH 变量改为PATH=$PATH:$HOME/bin:/arm2410s/gui/Qt/tools

  1. /usr/local/arm/3.4.1/bin/,存盘后退出。  
  2. [root@BC tools]# source /root/.bash_profile 

如果安装正确的话,在任意路径下输入ar 后按Tab 键即可列出编译器文件。

Qt/Embedded 平台的搭建需要以下几步:

***步,解压安装包并设置环境变量

安装Tmake

  1. cd ~/2410sQt  
  2. tar –xzf tmake-1.13.tar.gz  
  3. export TMAKEDIR=$PWD/tmake-1.13 

安装Qt 2.3.2

  1. cd ~/2410sQt  
  2. tar –xzf qt-x11-2.3.2.tar.gz  
  3. export QT2DIR=$PWD/qt-2.3.2 

安装Qt/Embedded

  1. cd ~/2410sQt  
  2. tar –xzf qt-embedded-2.3.10-free.tar.gz  
  3. export QTEDIR=$PWD/qt-2.3.10 

环境变量的设置是非常重要的,它关系到能否正确的安装及编译这些安装包,下面介绍一下这些环境变量:

  1. TMAKEDIR : 指向用于编译Qt/Embedded 的Tmake 工具  
  2. QT2DIR : 指向qt-2.3.2 的文件夹  
  3. QTEDIR : 指向qt-2.3.10 的文件夹 

第二步,编译Qt/Embedded。

1、Build Qt2.3.2

  1. cd $QT2DIR  
  2. export TMAKEPATH=$TMAKEDIR/lib/linux-g++  
  3. export QTDIR=$QT2DIR  
  4. export PATH=$QTDIR/bin:$PATH  
  5. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  
  6. ./configure -no-xft //出现选项时都输入yes  
  7. make  
  8. cp –arf bin/uic $QTEDIR/bin/ 

./configure 是对Qt 进行配置,它包括很多选项,例如可以通过添加“ -no-opengl”等,如果想要进一步了解可以通过键入 ./configure --help 来获得更多的帮助信息。编译完成后需要将生成的/bin/uic 复制到$QTEDIR 下新创建的目录bin 中,因为在随后编译

Qt/Embedded 的时候会用到这个工具。

2、Build Qvfb

  1. export TMAKEPATH=$TMAKEDIR/lib/linux-g++  
  2. export QTDIR=$QT2DIR  
  3. export PATH=$QTDIR/bin:$PATH  
  4. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  
  5. cd $QTEDIR/tools/qvfb  
  6. /root/2410sQt/tmake-1.13/bin/tmake -o Makefile qvfb.pro  
  7. make  
  8. mv qvfb $QTEDIR/bin/ 

这一步build qvfb 并建立了从Qt/Embedded 2.3.10 到Qt 2.3.2 的静态库的链接。其中qvfb 工具用来生成Virtual framebuffer,这是一个非常有用的工具,它可以模拟在开发板上的显示情况,如果在Virtual framebuffer 中运行没有问题的话,可以直接通过交叉编译在开发板上运行。

#p#
3、Build Qt/Embedded

  1. cd $QTEDIR  
  2. export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++  
  3. export QTDIR=$QTEDIR  
  4. export PATH=$QTDIR/bin:$PATH  
  5. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  
  6. ./configure -no-xft -qvfb -depths 4,8,16,32  
  7. yes  
  8.  
  9. 5  
  10. make 

在配置./configure 中-qvfb 用来支持Virtual framebuffer,-depths 4,8,16,32 支持4 位,8位,16 位,32 位的显示深度,此外还可以添加如-syestem-jpeg 和-gif 来提供对jpeg 和gif的支持。配置系统同时还支持对特定平台系统选项的添加,但一般来讲,凡是支持framebuffer 的Linux 系统都可以使用“linux-generic-g++”平台。详细的配置信息可以通过运行./configure --help 命令来查看。

第三步,查看运行结果

如果上面各步都能够成功的编译通过,下面就可以通过运行。Qt/Embedded 自带的demo 来查看运行结果。

在Virtual framebuffer 上运行:

  1. export QTDIR=$QTEDIR  
  2. export PATH=$QTEDIR/bin:$PATH  
  3. export LD_LIBRARY_PATH=$QTEDIR/lib:$QT2DIR/lib:$LD_LIBRARY_PATH  
  4. cd $QTEDIR/examples/launcher  
  5. qvfb -width 640 -height 480 &  
  6. sleep 10  
  7. ./launcher -qws 

运行结果如图9-3:

QT 桌面安装与建立运行环境

图9-3 Qt/Embedded Demo程序

将上面的步骤完成后,我们就已经建立好了在本机上开发Qt 应用程序的环境,下面我们通过编写一个“Hello Embedded”的程序来了解Qt 程序设计。

  1. [root@BC qt-2.3.10]# cd /root/2410sQt/  
  2. [root@BC 2410sQt]# mkdir exp  
  3. [root@BC 2410sQt]# cd exp  
  4. [root@BC exp]# vi hello.cpp 

#p#

使用VI 编写文件hello.cpp,程序代码如下:

  1. //hello.cpp  
  2. #include <qapplication.h> 
  3. #include <qlabel.h> 
  4. int main(int argc, char **argv)  
  5. {  
  6. QApplication app (argc, argv);  
  7. QLabel *hello = new QLabel("Hello Qt/Embedded!", 0);  
  8. app.setMainWidget(hello);  
  9. hello->show();  
  10. return app.exec();  

现在开始逐行讲解一下每一句是什么意思,掌握了这些以后可以帮助我们更加了解Qt的程序设计。

第1 行和第2 行包含了两个头文件,这两个头文件中包含了QApplication 和 QLabel类的定义。

第5 行创建了一个QApplication 对象,用于管理整个程序的资源,它需要2 个参数,因为Qt 本身需要一些命令行的参数。

第6 行创建了一个用来显示Hello Qt/Embedded!的部件。在Qt 中,部件是一个可视化用户接口,按钮、菜单、滚动条都是部件的实例。部件可以包含其它部件,例如,一个应
用程序窗口通常是一个包含QMenuBar、QToolBar、QStatusBar 和其它部件的一个部件。

在QLabel 函数中的参数0 表示,这是一个窗口而不是嵌入到其它窗口中的部件。

第7 行设置hello 部件为程序的主部件,当用户关闭主部件后,应用程序将会被关闭。如果没有主部件的话,即使用户关闭了窗口程序也会在后台继续运行。

第8 行使hello 部件可视,一般来说部件被创建后都是被隐藏的,因此可以在显示前根据需要来订制部件,这样的好处是可以避免部件创建所造成的闪烁。

第9 行把程序的控制权交还给Qt,这时候程序进入就绪模式,可是随时被用户行为激活,例如点击鼠标、敲击键盘等。

下面我们要让我们的程序跑起来,首先要让它能够在Virtual framebuffer 中显示出来,然后再通过交叉编译在开发板上运行。

要在本机的Virtual framebuffer 中显示结果,下面几步是必须的:

1.生成工程文件(.pro)

每一个Qt 程序都对应着一个工程文件,因为tmake 工具要借此工程生成相应的Makefile 文件。生成工程文件需要使用progen 工具,它的位置在$TMAKEDIR/bin 下,使用progen 生成工程文件的方法如下:

  1. $TMAKEDIR/bin/progen –t app.t –o hello.pro 

生成的这个hello.pro 工程文件是可以被修改的,可以编辑里面的头文件、源文件等内容。

2.生成Makefile 文件

Qt 提供了生成Makefile 文件的工具tmake,这极大地方便了应用程序的开发,节省了大量的时间,而且还可根据不同平台的需要生成适合于不同平台的Makefile 文件。

在使用tmake 工具前,必须查看相应的环境变量是否正确,由于我们要编译在本机上运行的Qt 程序,所以指定的编译器应该为“linux-x86-g++”,在命令行中输入下面的命令
来检查环境变量是否正确:

  1. echo $TMAKEPATH 

查看返回的结果的结尾字符是否是“……/qws/linux-x86-g++”,如果不是的话需要在命令行中重新设置TMAKEPATH

  1. export TMAKEPATH=/tmake 的安装路径(如$TMAKEDIR)/lib/qws/linux-x86-g++ 

此外还要使QTDIR 指向Qt/Embedded 的安装路径,如:

  1. export QTDIR=$QTEDIR 或者直接指定路径  
  2. export QTDIR=……/qt-2.3.10 

完成了上面的环境变量的设置,并用echo 命令检查无误以后,就可以使用tmake 工具来生成我们需要的Makefile 文件,在命令行中输入如下命令:

  1. $TMAKEDIR/bin/tmake –o Makefile hello.pro 

完成上面的步骤以后就可以在当前的目录中生成一个Makefile 文件,关于Makefile文件的功能和结构这里就不再做过多的介绍了,可以参考前面的章节来了解Makefile。

***在命令行中输入 “make”命令就可以对整个程序进行编译链接了,最终生成了一

个二进制的可执行文件hello。用Virtual framebuffer 显示效果如下:

QT 桌面安装与建立运行环境


 
图9-4 Hello Embedded

我们可以通过对QLabel *hello = new QLabel("Hello Qt/Embedded!", 0)这句进行修改,使我们的程序显示起来更为美观,修改如下:

  1. QLabel *hello=new QLabel("<h2><fontcolorfontcolor=blue>Hello" "<i>Qt/Embedded!</i> </font> </h2>", 0); 

修改后显示效果如图所示:

QT 桌面安装与建立运行环境


 
图9-5 修改后Hello Embedded

小结:关于QT 桌面安装与建立运行环境的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-04 14:58:56

Qt 桌面 qvfb

2011-07-04 15:48:57

Qt 桌面

2011-06-20 09:06:05

Qt Qtopia

2011-06-23 16:24:21

Qt Embedded 交叉编译

2011-06-14 09:04:52

Qt 环境变量

2011-06-13 13:35:06

Qt Embedded QT

2010-01-07 10:04:49

Ubuntu图形

2010-09-17 16:54:26

Java运行环境

2011-07-02 14:11:46

Qt Gtk Ubuntu

2009-06-22 11:13:00

linuxJava运行环境

2011-06-13 15:33:24

Qt Qt 4.5

2011-09-07 16:00:28

Ubuntunetbook桌面环境

2011-06-17 08:59:27

QT Embedded Arm

2011-06-28 10:20:19

Ubuntu Qt Designer

2011-06-13 13:06:48

Gtk Qt

2011-03-18 20:13:01

QtUbuntu

2010-03-01 16:51:53

CentOS VMwa

2018-09-30 10:35:29

UbuntuCinnamon桌面环境

2011-07-01 13:15:50

Ubuntu QT Eembedded

2011-06-16 16:41:20

Qt MeeGo SDK
点赞
收藏

51CTO技术栈公众号