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

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

  1. [root@BCroot]#cd/root/
  2. [root@BCroot]#mkdir2410sQt
  3. [root@BCroot]#cd/arm2410dev/gui/Qt/src
  4. [root@BCsrc]#cp-arftmake-1.13.tar.gzqt-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@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件

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

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

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

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

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

安装Tmake

  1. cd~/2410sQt
  2. tar–xzftmake-1.13.tar.gz
  3. exportTMAKEDIR=$PWD/tmake-1.13

安装Qt 2.3.2

  1. cd~/2410sQt
  2. tar–xzfqt-x11-2.3.2.tar.gz
  3. exportQT2DIR=$PWD/qt-2.3.2

安装Qt/Embedded

  1. cd~/2410sQt
  2. tar–xzfqt-embedded-2.3.10-free.tar.gz
  3. exportQTEDIR=$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. exportTMAKEPATH=$TMAKEDIR/lib/linux-g++
  3. exportQTDIR=$QT2DIR
  4. exportPATH=$QTDIR/bin:$PATH
  5. exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
  6. ./configure-no-xft//出现选项时都输入yes
  7. make
  8. cp–arfbin/uic$QTEDIR/bin/

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

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

2、Build Qvfb

  1. exportTMAKEPATH=$TMAKEDIR/lib/linux-g++
  2. exportQTDIR=$QT2DIR
  3. exportPATH=$QTDIR/bin:$PATH
  4. exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
  5. cd$QTEDIR/tools/qvfb
  6. /root/2410sQt/tmake-1.13/bin/tmake-oMakefileqvfb.pro
  7. make
  8. mvqvfb$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. exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
  3. exportQTDIR=$QTEDIR
  4. exportPATH=$QTDIR/bin:$PATH
  5. exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
  6. ./configure-no-xft-qvfb-depths4,8,16,32
  7. yes
  8. 5
  9. 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. [root@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件
0

运行结果如图9-3:

QT 桌面安装与建立运行环境(QT运行环境)  桌面 Embedded 第1张

图9-3 Qt/Embedded Demo程序

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

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

#p#

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

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

现在开始逐行讲解一下每一句是什么意思,掌握了这些以后可以帮助我们更加了解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. [root@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件
3

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

2.生成Makefile 文件

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

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

  1. [root@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件
4

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

  1. [root@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件
5

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

  1. [root@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件
6

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

  1. [root@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件
7

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

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

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

QT 桌面安装与建立运行环境(QT运行环境)  桌面 Embedded 第2张



图9-4 Hello Embedded

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

  1. [root@BCsrc]#cd/arm2410dev/gui/Qt/tools
  2. [root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C./
  3. [root@BCtools]#vi/root/.bash_profile//打开文件
8

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

QT 桌面安装与建立运行环境(QT运行环境)  桌面 Embedded 第3张



图9-5 修改后Hello Embedded

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

转载请说明出处
知优网 » QT 桌面安装与建立运行环境(QT运行环境)

发表评论

您需要后才能发表评论