• 3422阅读
  • 0回复

SameGame移植时出现的问题 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-07
SameGame如图: http://hi.baidu.com/xchinux/item/870495247f8ec8f951fd8754

SameGame原先是参照Linux下的一个SameGame程序做的,一开始做的是MeeGo Tablet,后来增加支持Linux Desktop、Windows Desktop、Symbian^3。程序中使用了Qt Components for Symbian,幸好它在上面平台下都能正常编译出来使用。一直没有系统的看下BB10 Native开发方面所要注意的问题,API手册说明等等,在近日将其向BB10移植中,只是按照以往Qt开发的岁路在处理,发现了几个问题,列举如下:

1. Qt Components for Symbian
    BBNDK中当然是不包含这个的了,需要自己去编译,上qt-project.org上下载了Qt Components for Symbian后,在命令行中自己编译即可,这个倒是没什么大问题。问题在于,在打包发布的时候,要将它带上,其实就是将编译目录中的imports目录,拷贝过来加到自己的项目目录中,在bar-descriptor.xml中加个asset路径配置项即可。

2. 路径问题
    BB10中就和iOS相似,只能在自己的目录下写东西,不能随便访问别人的目录,在bar-descriptor.xml中的asset路径配置中的目标路径都是相对于app/native的,比如下面一行中的配置项,即是将物理路径../imports(相对于.pro文件,bar-descriptor.xml和.pro在同一级目录)映射到app/native/imports路径上。
     <asset path="../imports">imports</asset>
    下面这个配置项,则是将物理上的translations目录映射到app/native/qm目录,只打包*.qm文件,其它的不要。
    <asset path="translations" dest="qm">
        <include name="*.qm"/>
    </asset>
    在C++, QML中,则是使用app/native/xxxx这样的路径来引用,具体这些路径有何说道,还没研究,之后要详细看一下手册。

3. 中文问题
    用Eclipse创建cascades应用时,中文能正常显示,但在SameGame中是传统的Qt/QML应用,执行时中文是方块,显示不出来,后经检查发现是字体的问题,于是用QFontDatabase::families()检索中文字体列表,然后取第一个中文字体QApplication::setFont(xxxx)这样就能正常显示出汉字来了。

4. 分辨率问题
    1280x768的分辨率,与PC上一样了,这样导致许多在PC或Symbian下使用的图标文件和尺寸大小到了BB10里就不适用了,图标尺寸都得变大,要不然还沿用原来的,在手机上就太小了,文字也一样,字体也得加大。

5. 多实例问题
    没有看BB10 API里到底是如何处理应用入口的,普通的Qt应用, 不做任何处理,在PC下是可运行多个实例的,比如在Linux下想禁止运行多个实例,可通过QtDBus来处理,在想打开第二个实例时呼叫激活第一个实例等等,对于Windows下也有类似的通知机制(比如QtSingleApplication)。在BB10中,默认的Qt代码,它自动激活现有已运行应用,不会执行多个实例,以后得研究一下。

暂时想到的就这么多,另外,还没有查找研究关于ssh登录,能ssh上去像终端那样执行命令吗?以后研究一下。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个