QtopiaPhone应用程序编写入门.docx

上传人:b****5 文档编号:2844195 上传时间:2022-11-15 格式:DOCX 页数:34 大小:193.19KB
下载 相关 举报
QtopiaPhone应用程序编写入门.docx_第1页
第1页 / 共34页
QtopiaPhone应用程序编写入门.docx_第2页
第2页 / 共34页
QtopiaPhone应用程序编写入门.docx_第3页
第3页 / 共34页
QtopiaPhone应用程序编写入门.docx_第4页
第4页 / 共34页
QtopiaPhone应用程序编写入门.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

QtopiaPhone应用程序编写入门.docx

《QtopiaPhone应用程序编写入门.docx》由会员分享,可在线阅读,更多相关《QtopiaPhone应用程序编写入门.docx(34页珍藏版)》请在冰豆网上搜索。

QtopiaPhone应用程序编写入门.docx

QtopiaPhone应用程序编写入门

By:

陆云波王少军宁显明黄小燕

QtopiaPhone应用程序编写指导

1QtopiaPhone开发环境的搭建2

1.1Linux的安装2

1.2Qtopia的安装2

1.3环境变量的设置2

1.4搭建编辑环境4

2简单例子4

2.1Phone应用的基本构成4

2.2ui文件4

2.3主窗口类6

2.4main函数8

2.5编译8

2.6安装9

2.7运行及结果10

2.8将应用添加到Qtopia工程中10

2.9快速加载12

3软按键的设置13

3.1软按键显示及其事件分发原则13

3.2控件的模式14

3.3ContextBar(上下文按钮或软按键)14

3.4上下文菜单(ContextMenu)15

3.5例子15

4应用程序标题栏的设置16

5编辑控件与输入法的关联17

5.1Qtopia的输入法提示17

5.2输入法提示例子17

6其它相关技术18

6.1信号与槽18

6.2QCop的使用18

6.3Qtopia应用的汉化18

6.4Qtopia提供的调试技术19

6.4.1命令行参数19

6.4.2警告与调试信息19

6.4.3调试宏19

6.5Service的使用20

6.5.1服务的请求方法20

6.5.2服务的定义和注册。

20

6.5.3Qtopia已定义的服务22

6.6Plugin的制作23

6.6.1任务分析23

6.6.2对接口类实现23

1QtopiaPhone开发环境的搭建

QtopiaPhone开发环境的搭建包括Linux安装、Qtopia的安装、环境变量的设置,以及为方便编程搭建相关环境。

1.1Linux的安装

Linux目前大部分都是安装在虚拟机上,关于虚拟机及Linux的安装可以参考朱晓华编写的安装说明:

《虚拟机Linux安装指南.doc》

建议安装RadhatLinux9.0,Linux内核版本2.4.20以上。

1.2Qtopia的安装

Qtopia完整的安装要依次编译tmake、Qt/X11、Qt/Embedded及Qtopia,关于这一过程在Qtopia目录下的Readme.html有详细说明,在王少军的《Qtopia图形系统和应用开发.doc》也有较详细的说明。

但是这一过程,比较麻烦也比较费时,而且也容易出错。

目前的解决办法是统一编译,然后打包供各开发人员使用,开发人员只要解压到相应目录就可以使用。

目前宁显明编译包qtopia-phone-1.9.0.20040202.tar.gz(在ftp:

//10.61.22.9/incoming可以下载),开发人员只要将此文件下载到Linux根目录,然后运行如下命令即可:

#tarxzfvqtopia-phone-1.9.0.20040202.tar.gz

运行结束后,在/opt目录下会生成qt-2.3.2(x11目录)、qt-2.3.8-snapshot-20040130(Qt/E目录)、tmake-1.13(tmake目录)、qtopia-source-1.9.0(Qtopia目录)。

1.3环境变量的设置

各个Qtopia版本的环境变量设置基本一致,只是个别变量稍有不同,以后在发布安装包时同时给出各个环境变量的设置说明。

目前宁显明编译的版本环境变量设置如下:

exportQPEDIR=/opt/qtopia-source-1.9.0

exportQTEDIR=/opt/qt-2.3.8-snapshot-20040130

exportQTDIR=$QTEDIR

exportTMAKEDIR=/opt/tmake-1.13

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

exportLD_LIBRARY_PATH=$QPEDIR/lib:

$QTEDIR/lib:

/opt/qt-2.3.2/lib

exportPATH=$QPEDIR/bin:

$QTEDIR/bin:

$TMAKEDIR/bin:

$PATH

exportQTOPIA_PHONE_DEVICE=sim:

localhost

为了使用方便,可以将这些变量输出添加到/etc/profile文件中。

这样系统启动后,这些环境变量就自动设置好。

由于此版本(可能包括以后的版本),编译时需要的环境变量与运行时需要的环境变量不太一样(差别在$QPEDIR),所以运行Qtopia时专门做了脚本程序,为/opt/startphone。

直接运行此脚本就可以运行Qtopia。

以下为/opt/startphone脚本程序

#!

/bin/sh

exportQPEDIR=/opt/qtopia-source-1.9.0/image/opt/Qtopia

exportQTEDIR=/opt/qt-2.3.8-snapshot-20040130

exportQTDIR=$QTEDIR

exportTMAKEDIR=/opt/tmake-1.13

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

exportLD_LIBRARY_PATH=$QPEDIR/lib:

$QTEDIR/lib:

/opt/qt-2.3.2/lib

exportPATH=$PATH:

$QPEDIR/bin:

$QTEDIR/bin:

$TMAKEDIR/bin

exportQTOPIA_PHONE_DEVICE=sim:

localhost

findproc(){

/bin/ps-e|/bin/sed-n-e'/\<'$1'\>/s/^*\([0-9][0-9]*\).*/\1/p'

}

killproc(){

pid=`findproc$1`

["$pid"!

=""]&&kill$pid

}

echo"Stoppingcommonsounddeamons..."

artsd_pid=`findprocartsd`

["$artsd_pid"!

=""]&&kill$artsd_pid

esd_pid=`findprocesd`

["$esd_pid"!

=""]&&kill$esd_pid

echo"Stoppingphonesimulator..."

killprocphonesim

echo"Startingqvfb..."

qvfb-skin$QTEDIR/tools/qvfb/SmartPhone.skin&

echo"Startingphonesimulator..."

phonesim$QPEDIR/etc/troll.xml&

sleep5s

echo"StartingQtopiaPhone..."

qpe&

echo"Stoppingphonesimulator..."

#killprocphonesim

echo"Restartingkilledsounddeamons..."

["$artsd_pid"!

=""]&&artsd&

["$esd_pid"!

=""]&&esd&

1.4搭建编辑环境

Linux环境下使用得最多的编辑器vi,对很多人而言,使用起来很不方便。

事实上,可以使用很多人更为熟悉的Windows操作系统下的各种编辑工具,而唯一需要做的工作是配置Linux,使得Windows操作系统能访问及修改Linux操作系统的文件。

常用的方法有两种,一种是在Linux开通Ftp服务,在Windows操作系统中使用UltraEdit编辑工具,关于这个方法,在黄小燕编写的《Qt开发入门.doc》有详细介绍。

另一种方法是采用samba实现局域网文件共享,如何配置samba在吴飞完成的《使用samba在linux和windows之间共享.txt》有详细说明。

2简单例子

为了更好地理解QtopiaPhone应用,本节举例说明一个简单QtopiaPhone应用的编写、编译及安装,最后讨论如何将应用添加到QtopiaPhone应用中和其它一些常见问题。

2.1Phone应用的基本构成

基本构成有头文件,C++源文件,ui文件,pro文件,图标文件,帮助文件,Desktop文件,各文件的书写及解释。

为了简单,此节不涉及图标文件、帮助文件的相关操作。

2.2ui文件

ui为userinterface,即用户界面的缩写,由QtDesigner生成,通过QtDesigner可以可视化设计用户界面。

有关QtDesigner的使用可以参考《Qtopia图形系统和应用开发.doc》第12.5节或$QTEDIR\doc\html\designer.html。

下图为本节例子设计的用户界面,界面比较简单,只有两个控件,一个为多行文本,一个为按钮,如图所示:

图1使用QtDesigner生成用户界面

ui文件将由Makefile调用uic生成一个界面类(对应有头文件和源文件),类的名称为窗口的属性name,对应的头文件及源文件的文件名也是窗口的属性name;每个控件对应的类的数据成员名称也是该控件的属性name指定。

如本例,生成的并头文件及源文件如下(已去除文件头部:

//examplebase.h

#ifndefEXAMPLEBASE_H

#defineEXAMPLEBASE_H

#include

#include

classQVBoxLayout;

classQHBoxLayout;

classQGridLayout;

classQMultiLineEdit;

classQPushButton;

classExampleBase:

publicQWidget

{

Q_OBJECT

public:

ExampleBase(QWidget*parent=0,constchar*name=0,WFlagsfl=0);

~ExampleBase();

QPushButton*buttonOk;

QMultiLineEdit*medit;

};

#endif//EXAMPLEBASE_H

//examplebase.cpp

#include"examplebase.h"

#include

#include

#include

#include

#include

#include

/*

*ConstructsaExampleBasewhichisachildof'parent',withthe

*name'name'andwidgetflagssetto'f'

*/

ExampleBase:

:

ExampleBase(QWidget*parent,constchar*name,WFlagsfl)

:

QWidget(parent,name,fl)

{

if(!

name)

setName("E

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1