Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Qt SDK开发入门

From Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台:
Symbian

文章
flycarl 在 25 Jan 2011 创建
最后由 hamishwillee 在 11 Oct 2012 编辑

Contents

下载开发环境

系统需求

Qt SDK支持下列操作系统。

  • 32- and 64-bit Microsoft Windows XP Service Pack 2, Windows Vista, and Windows 7.
  • Apple Mac OS X 10.6 及更高版本
  • 32- and 64-bit (K)Ubuntu Linux 7.04, 及一些组件:

安装需要大概4GB磁盘空间。本文关注Qt for symbian的开发,我们从windows XP系统来开始。

下载和安装

在下载Nokia论坛下载最新的Qt SDK
有离线和在线安装两种版本,离线版包含完整的 Qt SDK,在线版本在开始安装后下载需要的软件。如果在线版本出问题使用离线版本。

01 SDK download.png
图1: SDK的下载页面为 Windows, Linux,和 Mac OS X 操作系统提供离线和在线下载版本


运行安装文件,下面以离线版为例:

02 Setup.jpg 03 license.jpg 04 installation directory.png
图 2: 安装向导打开,较慢的电脑可能要等一会 图 3: 同意许可,下一步 图 4: 选择安装目录,勾选移除旧的Qt Creator设定
05 startmenu shortcuts.png 06 installing.png 07 completing setup wizard.png
图 5: 下一步 图 6: 安装进度 图 7: 安装结束,点Finish启动Qt Creator

安装结束后安装向导会提示你启动Qt Creator。Qt SDK包含Symbian开发向导,知道你如何为目标手机平台配置调试(debug)和部署(deployment)环境。现在我们还用不到,以后你可以在QtSDK_install_path>\readme目录找到这些文档。

08 creator welcome.png
图8: Qt Creator 成功启动

好了,安装很简单,到这一步不需要更多的配置了,因为 Qt SDK 自带一个Symbian SDK,和一个轻量级的模拟器,所以就算没有装Symbian的SDK,也可以进行我们下面的步骤。已有的Symbian SDK 会被检测到,这里略过。下面我们来导入一个例子工程。


创建和测试 代码

导入一个工程

Qt Creator启动后,我们来打开一个例子工程来看安装是否成功。我们来运行一个Qt的程序Animated Tiles,体验Qt在UI上的表现,以及跨平台的特点。

09 project selection v2.jpg
图9: 点击Choose an example… ,在下拉框选择一个例子,例如Animated Tiles

接下来会提示你选择这个工程的目标平台,请至少选上 Qt SimulatorSymbian Device,然后点Finish。

10 set up targets.png
图10: 选择目标平台

做过symbian的朋友对选择平台并不陌生,同一段代码,比如我们会选择在S60 3rd或S60 5th上编译。QT程序具有跨平台的特点,因此同一个工程会可能在Windows,linux,mac等桌面操作系统,Maemo Symbian等手机操作系统上编译,Qt Creator具有同时管理这些平台的能力,使得你可以直接切换编译的目标平台,安装了不同平台的Qt版本也会被Qt Creator自动识别到,比如安装了Qt的桌面版本则这里的目标平台会多出Desktop类别。Qt SDK以Maemo和Symbian为目标平台,因此安装后会提供这几种编译平台供开发者选择。

Maemo Maemo平台,本文不讨论
Qt Simulator 为手机上的Qt程序准备的轻量级的模拟器,不同于平台SDK自带的模拟器
Symbian Device 包含Qt库的Symbian平台,这里Qt SDK自带的Symbian SDK已经集成了Qt库,原来的Symbian平台如S60 5th需要安装Qt for symbian才能编译Qt程序。

例子工程打开后,我们看到有代码页面,和帮助页面,显示了对这个例子的说明,左侧上方的工具栏用于再Qt Creator中切换不同的View。

ViewsIntro.JPG
11 project space v2.jpg
图11: 例子工程打开后,进入Edit View编辑界面,右侧是例子的帮助文档,任意点击头文件,源代码等查看

点左侧的Build按钮编译(见图12),如果想查看编译过程,可打开 Compile Output log查看。

12 build run logs v4.jpg
图12: 左侧工具栏上有 目标平台选择,Run Debug Build按钮 Compile Output log显示编译信息。

如果以后你想增加其他目标平台,你可以在Projects view 下做。通过左手边的工具栏选择Project进入。

在 Qt 模拟器中运行应用

编译成功后,接下来我们在模拟器运行这个应用。点击左侧工具栏上的设备图标,选择目标平台。弹出一个目录(如图13),点击Qt Simulator做为当前的平台,如果你有多个工程,请确定当前的工程是你想要编译和运行的,当前的工程名字是黑体, 你可以在这里设定,也可以在Poject View 里选择。 点击绿色箭头的Run按钮(如图12) 你可以看到到程序运行在模拟器中(如图14)

13 target selection.jpg 14 simulator.png
图13: 目标平台选择目录 图14:程序运行在Qt模拟器中,图中所示处于Symbian^3配置状态

Note.pngNote: 模拟器不支持Symbian 和Maemo?的平台宏(platform macro)。例如为 Symbian 平台的屏幕大小所做的设定,不能运用到模拟器上。但是你可以使用Q_WS_SIMULATOR宏,来指定模拟器专用的代码。 更多关于环境宏environment macros的用法请参考Nokia Developer Wiki

接下来看看模拟器旁边的控制工具栏Qt Simulator Control,关于模拟器的更多功能,参见Qt Creator 帮助。

Simulate 可以模拟多种手机事件,并编写自己的脚本
Application 可以使用Symbian的menus,模拟器的UI没有实现这些目录
View 可以旋转模拟器的手机屏幕,可以改变手机设备(Device),选择S60 3rd,5th或Symbian^3等等的手机外观

现在你在Qt模拟器上成功运行了一个程序。接下来,我们在真机上运行测试这个程序。


将应用部署到Symbian手机上

这一节我们来看如何为Symbian手机编译一个应用,并安装运行到真机上。这个Qt程序在Qt模拟器上编译和在Symbian平台上编译并没有什么不同,你只需要切换目标平台点编译即可。但是要在Symbian手机上运行一个程序,你需要事先在手机上安装Qt包,以及Debug所需要的软件。联机调试也需要适当的配置Qt Creator。 注意Qt已经预先安装到Symbian^3手机上。 接下来一步步走,先配手机,再配置电脑。

准备条件

Debug 联机调试模式只支持Window操作系统 (32位和64位版)。另外你需要

  • 一台symbian手机和USB数据线(要运行本文中提到的例子程序,需要好Symbian^3,或Symbian S60 5th的触屏手机)
  • Qt SDK
  • Nokia Ovi Suite 或Nokia PC Suite

配置手机端

用USB数据连接电脑和手机。S605th的手机选择PC Suite模式。如果你之前没有使用过Ovi Suite或PC Suite,会自动安装一些驱动了,这些安装大概需要一分钟。PC Suite将逐渐被Ovi Suite取代。以下以Ovi Suite讲解。

将Qt安装到手机上

这一步,你需要Ovi Suite来安装*.sis文件。我们用Qt SDK自带的快捷方式来安装。在桌面点击 开始-> Qt SDK > Symbian > Install Qt to Symbian device。然后按屏幕提示操作。 你也可以使用浏览器找到Qt安装SIS包,自己手动安装。安装包是<QtSDK_install_path>\Symbian\sis and select qt_installer.sis

Note.pngNote: 如果Ovi Suite 安装SIS文件有问题,你可以在用蓝牙或数据线 将SIS文件拷贝到手机中,然后在手机中运行这个SIS文件

在手机上安装配置TRK

用快捷方式安装TRK,在桌面点击 开始-> Qt SDK > Symbian > Install TRK to Symbian device,然后选择安装与你的手机相应的版本。 你也可以在<QtSDK_install_path>\Symbian\sis目录找到这些TRK安装文件(例如Symbian^3_app_trk_3_2_7.sisx)


配置Qt Creator

手机端配置好了,现在来设置Qt Creator,在我们的例子中只打开了一个工程,因此默认设置不需要改变即可运行,读者可跳到下一节。 在打开了多个工程,同时面向多个平台开发时,遇到编译,运行,签名问题,再回到这一节来。 在左手边的工具栏选Project 模式,然后在中间选 Symbian Device,及其下的Build标签(如图15)。

15 Symbian build settings.png
图15: Symbian Device Build 设置页面

Note.pngNote: 如果你在第2步导入/创建工程时没有选择Symbian做为目标平台,那么这里看不到Symbian Device标签。这时你可以点击'+',然后再下拉框里选则Symbian Device

确定你在Edit Build Configuration选择的是Debug,这时是Debug模式,如果是Release模式,则不能打断点。 在Qt Version栏应该显示Qt for Symbian Devices (Qt SDK),如果不是请点击下拉框选择这项。

symbian的平台安全性要求为应用程序签名。这个 Animated Tiles程序只需要自签名(self-signed)即可。Qt SDK会为默认的证书好密钥为应用的安装包进行自签名(如图16)。如果一个应用程序需要敏感的能力,比如读取设备数据,那么需要根据开发者的Publisher ID 进行签名,将验证软件开发者的身份。总的来说,不光是商业发布版本的应用需要签名,开发和测试中的程序也需要签名才能安装到手机上。卡发着的证书和密钥可以通过点击Create SIS package的Detail按钮来填入。如果你没有接触过symbian的平台安全性概念,请阅读Nokia Developer Wiki上相关的文章。Ovi Store为个人开发者提供了免费的签名服务,详情参看Ovi商店开发者注册发布指南

16 build steps.png
图16: 证书可以在Create SIS package中填入

现在点击Symbian Device标签下的Run按钮(见图17),确保”Run configuration“旁边的下拉框填的是当前的工程,本例中是'animatedtiles on Symbian Device'。 同时检查"Device on Serial Port “中显示有可用的COM接口(见图17)。

17 run settings.png
图17: Symbian Device Run 设置页面

Ok,你现在完成了所有配置。当手机连接到PC上时可以联机调试了。

18 debug service.png
图18: 每当手机连接上电脑后,会在手机上出现上面的提示。

Note.pngNote: 如果手机的Debug状态没有自动打开,可以在手机的功能表的RnD Tools文件夹下启动TRK程序,然后在TRK中启动连接。也可设置当连接时是否自动提供Debug(USB 即插即用)


在symbian手机上联机调试

检查一下目标平台,选的是Debug,和正确的工程(我们这里是'animatedtiles on Symbian Device'),如图19所示

19 Symbian debug.png
图19:选择为symbian手机上联机调试,编译信息显示编译成功

点击钉锤图标,会编译所有打开的工程,等同于快捷键CTRL+SHIFT+B。要编译当前激活的单个工程,你可以使用CTRL+B。你可以看到编译信息中自动生成了自签名的sis文件。当编译正常结束,安装包准备好后可以看到'The process "C:/QtSDK/Symbian/SDK/epoc32/tools/make.exe" exited normally' 的字样。

Note:Release 版本的生成与上面的步骤类似,只需在选择目标平台为Release即

在手机上运行程序

点击绿色播放按钮,程序将传送到手机上安装并运行。或者使用快捷键CTRL+R。 你也可以点Debug按钮,点击代码编辑器的行号的左边将设置断点,运行在Debug模式下可以联机断点,非常方便,这对于调试多点触摸,电话,短信等手机功能来说非常有用。 同时在联机调试过程中(Run或者Debug), Application Output窗口作为console窗口输出信息。使用如下代码可以得到实时的log,这方便易用。

#include <QDebug>
qDebug()<<"some";
int count = 5;
qDebug()<<"a number"<<count;
QString str("a string");
qDebug()<<"a QString"<<str;

运行到这几行后,将输出

[Qt Message] some 
[Qt Message] a number 5
[Qt Message] a QString "a string"
20 debug build running.png
图20:联机运行时效果,注意左侧设备连接的绿勾,表示连接正常,Application Output输出了debug信息
21 application running.png
图21:手机上运行的效果

Note:如果你需要animatedtiles.sis,你可以在 <QtSDK_install_path >\Examples\4.6\animation\animatedtiles文件夹找到这个SIS包,这个文件夹可以通过右键点击任意工程文件选Show in Explorer找到

ShowInExplorer.jpg

关于适应屏幕的大小

为了让应用能自适应手机不同的的屏幕尺寸,在main.cpp文件中程序的窗口被定义为

view->showMaximized()

有的时候你需要对界面元素尺寸进行设定以获得正确的显示。 好的,到此为止你已经成功的在symbian手机上运行了Qt程序,接下来我们看看关于Qt for Symbian开发的更多信息。


Qt for Symbian资料

现在你已在Qt SDK中成功运行了第一个程序,并运行在Qt模拟器和Symbian手机上。接下来你可以按一下步骤来做。

了解Qt Creator和Qt Simulator的功能

即使你对Qt Creator IDE很熟悉,我们还是建议你查看内置的帮助Qt Creator Manual,这里有关于Qt Creator全面的介绍,如何创建和管理工程,如何创建C++和QtQuick应用。如何使用Qt Designer使创建UI更容易。 在帮助中也有Qt模拟器更高级的使用方法Qt Simulator Manual

学习Qt

如果你没有接触过Qt,对Qt的编程习惯,代码样式,核心概念感到陌生,建议你读一下

学习如何在手机上使用Qt

诺基亚论坛提供了很多学习资料,例子程序,专题等,参见

Qt 开发 Nokia Forum中文 Qt开发资料汇总
Qt learning materials page 自学资源,练习课程,各种电子学习资料
Mobile hands-on labs 这里手把手的教你如何配置开发环境,创建第一个Qt应用,还有一些视频资料,比如使用Qt的动画框架Qt animation framework

当你准备开发应用,可以在Qt Creator自带的帮助里很容易的查找需要的API的详细文档和例子,试一试Help View,Qt详细的文档不会让你失望。

从例子中学习

查看<QtSDK_install_path >\Examples文件夹,这里有关于Qt各种功能的例子,和完整的代码,很多都可以直接跨平台运行。

使用手机的功能

想用Qt调用手机的功能,如发短信,照相,地理定位等等,参看Qt Mobility 开发

为Qt程序扩展平台相关的功能

尽管Qt SDK为Symbian开发提供了全面的开发环境,但有些应用程序还是会用到一些平台特有的功能,而Qt及Qt Mobility API没有提供,或暂时没有提供,在这种情况下你需要下载单独的Symbian SDKs, 进行Qt Symbian 混合编程。Qt Creator也支持这些原有的平台,可调用Symbian SDK的模拟器,如果你想使用Symbian上原有的工具链的一些高级功能,如Symbian 能力扫描等,可以安装原有的Symbian工具链,如Carbide.c++等参见Qt Symbian 开发环境安装,不建议在Carbide中开发Qt程序,因为这样会失掉Qt Creator跨平台开发Qt的特性。

This page was last modified on 11 October 2012, at 01:18.
224 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×