新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Qt图形编程基础之:Qt/Embedded开发入门

Qt图形编程基础之:Qt/Embedded开发入门

作者:时间:2013-09-13来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/257103.htm

12.2.3搭建开发环境

一般来说,用开发的应用程序最终会发布到安装有嵌入式的小型设备上,所以使用装有的PC机或者工作站来完成开发当然是最理想的环境,此外Qt/Embedded也可以安装在UNIX或Windows系统上。这里就以在中安装为例进行介绍。

这里需要有3个软件安装包:tmake工具安装包、Qt/Embedded安装包和Qt的X11版的安装包。

n tmake1.11或更高版本:生成Qt/Embedded应用工程的Makefile文件。

n Qt/Embedded:Qt/Embedded安装包。

n Qt2.3.2forX11:Qt的X11版的安装包,产生X11开发环境所需要的两个工具。

注意

这些软件安装包都有许多不同的版本,由于版本的不同会导致这些软件在使用时可能引起的冲突,为此必须依照一定的安装原则,Qt/Embedded安装包的版本必须比QtforX11的安装包的版本新,这是因为QtforX11的安装包中的两个工具uic和designer产生的源文件会和Qt/Embedded的库一起被编译链接,因此要本着“向前兼容”的原则,QtforX11的版本应比Qt/Embedded的版本旧。

1.安装tmake

用户使用普通的解压缩即可,注意要将路径添加到全局变量中去,如下所示:

tarzxvftmake-1.11.tar.gz

exportTMAKEDIR=$PWD/tmake-1.11

exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++

exportPATH=$TMAKEDIR/bin:$PATH

2.安装Qt/Embedded2.3.7

这里使用常见的解压命令及安装命令即可,要注意这里的路径与不同的系统有关,读者要根据实际情况进行修改。另外,这里的configure命令带有参数“-qconfig–qvfb–depths4816,32”分别为指定Qt嵌入式开发包生成虚拟缓冲帧工具qvfb,并支持4、8、16、32位的显示颜色深度。另外读者也可以在configure的参数中添加“-system”、“-jpeg”或“gif”命令,使Qt/Embedded平台能支持jpeg、gif格式的图形。

Qt/Embedded开发包有5种编译范围的选项,使用这些选项可控制Qt生成的库文件的大小。如命令makesub-src指定按精简方式编译开发包,也就是说有些Qt类未被编译。其他编译选项的具体用法可通过“./configure–help”命令查看。精简方式的安装步骤如下所示:

tarzxvfqt-embedded-2.3.7.tar.gz

cdqt-2.3.7

exportQTDIR=$PWD

exportQTEDIR=$QTDIR

exportPATH=$QTDIR/bin:$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

./configure-qconfiglocal-qvfb-depths4,8,16,32

makesub-src

3.安装Qt/X112.3.2

与上一步类似,用户也可以在configure后添加一定的参数,如“-no-opengl”或“-no-xfs”,可以键入命令“./configure–help”来获得一些帮助信息。

tarxfzqt-x11-2.3.2.tar.gz

cdqt-2.3.2

exportQTDIR=$PWD

exportPATH=$QTDIR/bin:$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

./configure-no-opengl

make

make-Ctools/qvfb

mvtools/qvfb/qvfbbin

cpbin/uic$QTEDIR/bin

12.2.4Qt/Embedded窗口部件

Qt提供了一整套的窗口部件。它们组合起来可用于创建用户界面的可视元素。按钮、菜单、滚动条、消息框和应用程序窗口都是窗口部件的实例。因为所有的窗口部件既是控件又是容器,因此Qt的窗口部件不能任意地分为控件和容器。通过子类化已存在的Qt部件或少数时候必要的全新创建,自定义的窗口部件能很容易地创建出来。

窗口部件是QWidget或其子类的实例,用户自定义的窗口通过子类化得到,如图12.3所示。

图12.3源自QWidget的类层次结构

一个窗口部件可包含任意数量的子部件。子部件在父部件的区域内显示。没有父部件的部件是顶级部件(比如一个窗口),通常在桌面的任务栏上有它们的入口。Qt不在窗口部件上施加任何限制。任何部件都可以是顶级部件,任何部件都可以是其他部件的子部件。通过自动或手动(如果你喜欢)使用布局管理器可以设定子部件在父部件区域中的位置。如果父部件被停用、隐藏或删除,则同样的动作会应用于它的所有子部件。

1.Hello窗口实例

下面是一个显示“HelloQt/Embedded!”的程序的完整代码:

#includeqapplication.h>

#includeqlabel.h>

intmain(intargc,char**argv)

{

QApplicationapp(argc,argv);

QLabel*hello=newQLabel

(fontcolor=blue>Helloi>QtEmbedded!/i>/font>,0);

app.setMainWidget(hello);

hello->show();

returnapp.exec();

}

2.常见通用窗口组合

Qt中还有一些常见的通用窗口,它们使用了Windows风格显示,图12.5、12.6、12.7、12.8分别描述了常见的一些通用窗口的组合使用。图12.4是该Hello窗口的运行效果图:

图12.4 Hello窗口运行效果图     图12.5 使用QHBox排列一个标签和一个按钮

        

图12.6 使用了QButtonGroup的两个单选框和两个复选框 图12.7 QGroupBox组合图示

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程




评论


相关推荐

技术专区

关闭