Posts Tagged ‘s60’
什么是远程编译
远程编译是指在客户端将源代码提交到服务器,在服务器端进行编译,将编译好的可安装程序下载到本地。 这样做有几个好处
很好的兼容性。服务器端由官方维护,开发环境能够保持和手机运行环境的一致性
良好的可配置性。在客户端的开发者,只需配置一下服务器的编译平台,就能够生成不同的代码。
跨平台开发。 开发者无论是Windows/Mac/Linux操作系统,只需提交代码,即可得到目标平台的代码。目前Mac/Linux还不提供Symbian的编译器,但是使用远程编译你也能很方便在Mac/Linux平台下开发Symbian应用。
目前Nokia Qt SDK里已经集成了远程编译,本文将介绍在Nokia Qt SDK中如何使用远程编译。
使用远程编译
SDK 安装选项
要使用远程编译,需要在安装Nokia Qt SDK的时候将远程编译功能给选上,在安装类型上选择 Custom
在安装组件中,将Remote Compiler选上
激活远程编译
要使用远程编译功能,需要你拥有一个诺基亚论坛帐号,然后利用它进行授权使用,配置方法: 主菜单->Tools->Options->Projects->Remote compiler
如果配置成功,上图中Logout字样会变亮。此时当你新建一个工程的时候你会看到多出来一些”Remote Compiler”的Qt版本
如果是已经创建好的工程,也可以通过项目的编译选项添加”Remote Compiler”的支持
在设置了Remote Compiler支持后,可以为远程支持设置不同的Qt平台.如Maemo/S60 3rd/S60 5th等
执行编译则和在本地编译没什么区别,点击榔头编译按钮就可以。编译完成会生成 .sis(Symbian)或.deb(Maemo)文件。可以直接安装到手机上。
注意
如果你的网络需要代理才能访问Internet,那么同样在配置诺基亚论坛帐号授权时,需要在那里填入代理服务器的相关信息。
Read More...
Tags: build, qtcreator, remote compiler, s60
Posted on June 29th, 2010 in Qt技术, s60 | No Comments ».
在做手机应用的时候经常会要碰到修改手机屏幕上软键显示的问题,比如想把”退出”改为”返回”,”取消”等,同时也改变选中该软键时的行为,不是标准的退出应用。
Nokia论坛上有一篇文章Change_SoftKey_labels_of_widget_in_Qt 介绍了在Symbian Qt中如何处理这个问题,不过该文介绍的方法只适合Qt-4.6以前的版本,因为Qt-4.6以后的版本没有了文章所说的QWidget::setSoftKeys(), 改由另外的机制来实现。
Qt-4.6以后的版本使用QAction::setSoftKeyRole(SoftKeyRole softKeyRole),SoftKeyRole可用的值有Action::NoSoftKey,QAction::PositiveSoftKey,QAction::NegativeSoftKey,QAction::SelectSoftKey分别代表没有映射,左键,右键和中键。软件上的文字则有QAction中的文本来确定。软键的内容变化由当前获得焦点的Widget的QAction来确定,当然需要该QAction要执行setSoftKeyRole才能关联到软键上:)
下面是一段不长的代码,演示了如何修改手机软键
#include
class Widget:public QWidget{
public:
Widget(QWidget *parent);
};
int main(int argc,char *argv[]){
QApplication app(argc,argv);
QMainWindow mw;
Widget *w=new Widget(&mw);
mw.setCentralWidget(w);
mw.showMaximized();
return app.exec();
}
Widget::Widget(QWidget *parent):QWidget(parent){
QVBoxLayout *layout=new QVBoxLayout(this);
QPushButton *helloqt=new QPushButton(“Hello Qt”,this);
QAction *actI=new QAction(QObject::tr(“Qt”),this);
actI->setSoftKeyRole(QAction::PositiveSoftKey);
helloqt->addAction(actI);
QPushButton *hellomaemo=new QPushButton(“Hello Maemo”,this);
QAction *actII=new QAction(QObject::tr(“Maemo”),this);
actII->setSoftKeyRole(QAction::SelectSoftKey);
hellomaemo->addAction(actII);
QPushButton *hellos60=new QPushButton(“Hello S60″,this);
QAction *actIII=new QAction(QObject::tr(“S60″),this);
actIII->setSoftKeyRole(QAction::NegativeSoftKey);
hellos60->addAction(actIII);
layout->addWidget(helloqt);
layout->addWidget(hellomaemo);
layout->addWidget(hellos60);
layout->addStretch();
}
根据当前选了不同按钮,可以看到软键上显示的信息在变化,大家去试的时候可能会发现SelectSoftKey没起作用,应该是系统没有使能MSKEnabled()的原因。
Read More...
Tags: example, Qt4.6, s60, softkey
Posted on March 25th, 2010 in Qt技术, s60 | 2 Comments ».
Qt-4.6.0的发布,比起以前的版本发布。带来的革新要大的多。
比如增加了多点触摸的支持,增加了3D的支持,特效框架,以及状态机等,所以利用Qt-4.6写出更炫的程序几乎是不成问题的。。而且正式开始支持symbian,并且将会替代掉avkon。
不过从开发者的角度来讲,我对Qt for S60还有更多的期待。
1. 安装的时候应该更智能一些,比如在发现已经有以前版本的时候,应该做出提示。因为Qt不同版本的一些动态库同名文件都是安装在S60 SDK的同一个目录下。两个版本同时安装会导致程序运行出错。
2. 为Qt支持到不同SDK的时候,能否重新设计节约支援一点。目前的做法是给每个SDK下都拷贝一份。而且同一版本在arm5/arm6也拷了两份。我说我的硬盘怎么那吃紧。
3. Qt安装刚开始的时候会提示是否安装源文件,如果选否的话,Qt的工具也没装上。就没法做开发了,所以那个选项放着毫无意义。
4. 什么时候能把帮助文件,和翻译系统也能集成到Carbide里,就善莫大焉
第四条应该是Carbide的事,不过Qt自己发布的QtCreator也没把翻译集成进去,所以也算是一条:)
第二条应该是SDK设计的事,怎么引用路径外的库:) 反正都是Nokia的事。
Read More...
Tags: Qt4.6, s60
Posted on December 3rd, 2009 in Qt技术, s60 | 2 Comments ».
在很久很久以前,Qt并不用在S60手机上,更久以前它甚至不是用在手机上的。
所以,Qt本身并没有为手机设计专有的模块。而基于Qt的Linux手机设计,无论Moto的EZX,还是Qtopia都是在Qt系统上重新做了一套框架。其实我们知道Qt自身其实已经是一套比较完善的框架了,再在上面搞一套框架,看起来有点像乌龟盖房子-盖中盖,有点浪费啊。所以,在Nokia在收购了Qt后,决定只是对Qt进行扩展,用于所有手机平台,这样系统瘦身了不小。这个手机扩展的部分就是Qt-Mobility,前面有介绍。那么这个Mobile Extension又是什么呢,目前来看是Qt-Mobility在S60上的替代品。因为开发一套完整的Qt风格Moblie API需要时间。Mobile Extension是独立的API,不是用Qt写的,但是可以被Qt代码调用。
Mobile Extension是用symbian代码写的,所以目前只能是在symbian上使用了。其功能包括Nokia智能手机上绝大部分和手机应用相关的API调用,包括但不限于网络连接,闹铃,日历,拍照,联系人,软件安装,位置标记,方向传感器,加速管理器,震动,设置管理等等,如果想要使用Mobile Extension去做开发或看看演示,可以到下面这个地址去下载
http://www.forum.nokia.com/piazza/wiki/images/b/b4/Mobile_extensions_preview_3.zip
解压以上文件,会看到以下几个目录
如果想在手机上看演示的话,只需把install_to_device下的.sis文件安装到Nokia手机上即可,当然需要装好Qt的库哦,前面一个博客讲了怎么安装Qt库了,如果没有安装,可以过去瞧瞧。如果想在Carbide里做开发的话,需要将install_to_sdk目录下,解压后的epoc32目录内容,拷贝到SDK对应的目录下面。如果默认安装,应该是C:\S60\devices\Nokia_N97_SDK_v1.0\epoc32这样的地址。然后就可以做开发了。
演示和测试代码在extensions目录下,你只需要通过Carbide的工程工具引入(import)一个Qt的.pro工程文件即可。然后编译成.sis文件,拷贝到手机上安装,齐活。
关于Mobile Extension,详细文档可以参考:http://wiki.forum.nokia.com/index.php/Mobile_Extensions都是E文的,如果大家有兴趣,可以翻译过来
Read More...
Tags: qt-mobility, s60
Posted on November 5th, 2009 in Qt技术, s60 | 1 Comment ».
本博上前面已经有文章介绍了怎么在S60 SDK上编译Qt程序并运行,具体可用S60 tag找到它们。今天我在使用新版本时候,又遇到新的问题,本着与时俱进和查漏补缺的原则,也一并写出来,可以对照着看。
先说说手机上的需求
如果需要Nokia S60系列手机上运行Qt程序,那么需要先有Qt的运行库,因为商店卖给你手机的时候并没有安装Qt库(也许以后的版本会装上,但是谁知道以后有多后呢),所以需要你自己去安装。当然Qt库还会依赖于其它几个C和C++的库,分别是pips/openc_ssl/stdcpp。如果是4.5.2,基础库下载地址可以是pips_s60_1_5_5b.sis openc_ssl_s60_1_5_5b.sis stdcpp_s60_1_5_5b.sis。Qt库和演示程序的下载则在http://pepper.troll.no/s60prereleases/demos/目录下。安装完后就可以在你的手机上体验Qt应用了。
如果想测试你自己编写的Qt-4.6.0-beta程序,则需要Qt-4.6.0以上的库文件,我在安装自己应用的时候提示要Qt 4.0.6以上版本,不会是bug吧,呵呵。上上下下翻了几遍http://pepper.troll.no/s60prereleases里的文章,也没找到下载Qt-4.6.0-beta库的地方。只好自己动手丰衣足食。如果你已经安装了Qt for Symbian 4.6.0-beta的SDK后,那么在安装目录下C:Qt4.6.0-beta可以看到两个.sis文件fluidlauncher.sis和qt.sis,你需要安装它们。同样Qt的依赖库也可以在安装目录下找到,地址分别为
<EPOCROOT>nokia_plugin\openc\s60opencsis\pips_s60_<version>.sis
<EPOCROOT>nokia_plugin\openc\s60opencsis\openc_ssl_s60_<version>.sis
<EPOCROOT>nokia_plugin\opencpp\s60opencppsis\stdcpp_s60_<version>.sis
如果你没发现上面几个.sis文件,说明你的Open C/C++插件没装,请点击链接下载。
再说说PC端开发工具的需求
要提醒一下Carbide的版本需要2.0.2以上的版本,Nokia官方提供下载的版本是2.0的。因为在使用2.0版本的时候,创建Qt工程时候不能创建如下图中后面两个平台的文件
而armv5的编译器是收费的,而gcce编译器是免费的。Carbide 高版本的下载可以Application Developer Toolkit (ADT) (includes Carbide.c++ IDE 2.0.4)。
关于怎么将Qt SDK插件加入Carbide环境,可以参考下面这个文章,有图有真相,很好理解
http://developer.symbian.org/wiki/index.php/Qt_Quick_Start#Carbide_Configuration。
Read More...
Tags: device, Qt4.6, s60
Posted on November 4th, 2009 in Qt技术, 其他平台技术 | 6 Comments ».
本月21至23号,本人有幸参加了诺基亚在北航举办的Qt开发培训,是免费的哦,来参加的人员有很多是Nokia手机的第三方开发商,当然也有新浪腾讯等 大型互联网公司无线部门的开发者,看来Qt渗透力很强。而且提供午餐,早上下午都提供茶歇,有零食和水果供应,看来Nokia不差钱。培训师是来自于芬兰 的Niemi Petri,英语比好多芬兰人要好,课程讲得深入浅出,很好理解。课程内容涉及Qt的基本知识,以及Qt在S60和Maemo上的开发。
课程上还有课堂练习,下面我就把培训的PPT和作业以及演示代码传到我们网站上分享给没去参加的朋友。
qt_for_mobile_slides_day_1(Qt 偏底层知识,for windows/S60)
qt_for_mobile_slides_day_2(Qt 偏上层知识,for windows/S60
qt_for_mobile_slides_day_3(Maemo 开发)
exercise_day_1
demos_day_2
Read More...
Tags: Qt, s60, training
Posted on October 24th, 2009 in Qt技术, Windows技术 | 8 Comments ».
创建主窗体
在教程的前面,通过工程向导已经创建了一个没有任何控件的窗体,文件名是AddressBook.ui。在Carbide的project explor中双击该文件,即可进行可视化编辑。不过和在Linux使用的Desinger不太一样,窗体的控件属性框体(QtDesigner子窗口),还有可增加的控件框体(QtDesigner子窗口)不是默认显示状态的,需要手动显示它们。
菜单选项如图显示,选择对应的QtDesigner窗口即可。
Read More...
Tags: addressbook, Designer, IDE, Qt4.5, s60
Posted on October 14th, 2009 in Qt技术, 其他平台技术 | 1 Comment ».
这个教程的主要目的是介绍怎么在Carbide/S60环境下使用QtDesigner工具开发Qt GUI程序,如果读者想了解Qt本身的一些设计概念,另外一篇文章Qt地址簿教程会更加适合。
搭一个Qt应用的基本框架
本小节的内容无关任何和地址簿有关的任何细节,只是通过工程向导创建一个默认Qt工程的过程,对于从其他集成开发环境转过来的可以参考一下。
第一步:在菜单从选择新建一个Qt Project
第二步:选择Qt程序的类型,这里我们选择Qt GUI Widget
Read More...
Tags: addressbook, IDE, Qt4.5, s60
Posted on October 13th, 2009 in Qt技术 | No Comments ».
转贴个Qt-S60的开发者资源列表, 原文贴于Nokia论坛:
http://discussion.forum.nokia.com/forum/showthread.php?p=637780
Qt technology now becomes an option for developers to develop application on S60 devices. This discussion area is dedicated to the Qt development for S60. Should you have any questions and comments, please discuss them here.
There are some good resources now available to the developers:
Technology preview for “Qt for s60″
http://www.qtsoftware.com/resources-…iew-qt-for-s60
Read More...
Tags: Qt, s60, symbian
Posted on October 6th, 2009 in Qt技术, 其他平台技术 | No Comments ».
因为我的机器已经装好了Carbide C/C++,所以我没有按照其它文章介绍的那样一步一步去装。而是直接在
http://pepper.troll.no/s60prereleases/
下载了qt-embedded-s60-preview-4.5.2-tower.exe开始安装。(其实安装有不少步骤,本文不讨论安装)
在安装完Qt安装包之后,我即迫不及待得开始在Cabbide的File菜单里new 一个Qt工程,一路顺利创下一大堆文件,然后开始编译,于是出现了上面的错误:
C:\Qt\4.5.2-tower\src\corelib\tools\qstring.h:60: the file ’string’ cannot be opened
Qt的头文件里需要包含一个C++标准库的string头文件,居然没有。打听了一下,应该还要安装一个Open C/C++的插件,保证了一些C/C++的基本调用函数能够找到,功能有点类似linux中glibc-dev这样的包吧。可以在Nokia开发社区找到下载地址
http://www.forum.nokia.com/info/sw.nokia.com/id/91d89929-fb8c-4d66-bea0-227e42df9053/Open_C_SDK_Plug-In.html
选择最新版本安装就可以了。安装完毕,可以在你的s60 SDK目录下看到nokia_plugin\openc这样的子目录。
重新编译Qt例子程序一切正常。至此,本人对在S60上编译Qt程序需要的预装软件更能铭记于心了。
1. Carbide C/C++: 这个是开发S60程序的IDE,自然不能缺少
2. S60 开发SDK: 对应不同的设备,需要不同的SDK开发包。有不同的版本比第三版,第五版,N97版等,第三版又有fp1,fp2等。Qt需要在第三版的fp1以上版本才能开发。
3. Open C/C++: 基本C/C++ API调用需要的开发库。
附录:Qt-S60开发四件套
http://bit.ly/rCU2o Carbide C/C++ 集成开发环境IDE
http://bit.ly/JbX4h S60开发的可选SDK下载
http://bit.ly/Amg24 最新Qt_S60安装包或源码
http://bit.ly/JbX4h Open C/C++组件
Read More...
Tags: Qt4, s60, symbian, 安装, 编译
Posted on September 18th, 2009 in Qt技术 | 6 Comments ».