一个新的Maemo5平台下的QStarDict移植版本

一直以来,Nokia N900上都没有一个好用的词典软件,虽然有人把QStarDict移植到了Maemo5平台下,但基本只是简单地交叉编译+重新打包,而且由于Maemo5平台本身的限制,缺失了状态栏图标和屏幕取词两个重要功能。最近,我们研究了一下QStarDict的源代码,并针对Maemo5的特性重新移植了QStarDict。下面我将对该版本作一个详细介绍。

1、界面

程序启动后的界面如下图所示。

 

 

请注意图中在Status Area区域有一个QStarDict的图标,当该图标存在时,表示程序正在运行,否则表示程序已经退出。关于这个Status Menu的插件在后面会有详细说明。

 

2、设置

单击菜单栏上的“Configure”按钮,将启动程序设置对话框。为了使之适应N900的屏幕,我们对这个对话框界面进行了一些改动。

 

从上图可以看到,除了最常用的stardict插件外,我们这次还特意写了一个xdxf格式的插件,使QStarDict可以支持XDXF格式的词典。不过目前这个插件的性能还不太好。

 

 

 

 

 

当完成设置后,单击屏幕的空白区域,将弹出对话框询问是否保存设置。如下图所示。

 

 

3、查询单词

如下图所示,在输入框中输入要查询的单词后,将在查询结果区显示查询的结果,同时由于stardict插件支持模糊查询,程序左边的相似单词列表中将列出与输入的单词相似的单词。当用户单击列表中的某个单词后,将在查询结果区显示该单词的查询结果。

 

另外,由于在手机上,查询结果区面积比较小,因此我们在程序中加了一个Maemo5平台下特有的Stack Window。当用户单击Search按钮,或者双击相似单词列表中的某个单词后,程序将转到另一个界面,此界面只有一个查询结果区,因此可以方便用户查看查询结果。如下图所示。

此时,窗口右上角的退出按钮将变成一个用箭头表示的返回按钮。当用户单击这个返回按钮后,程序将回到原来的主界面。

4、Status Menu插件

QStarDict为了实现全局的屏幕取词翻译的功能,因此在关闭它的窗口后,程序仍将在后台运行。而由于Maemo5平台取消了任务栏,因此QStarDict原来通过任务栏菜单控制开启或关闭屏幕取词和退出程序的功能也就无法通过原有的代码实现了。为了实现全局控制开启或关闭屏幕取词、重新打开被关闭的主窗口、以及退出程序的功能,我们为Maemo5平台下的QStarDict写了一个Status Menu的插件,通过这个插件可以实现如上所述的三种功能。

单击手机的Status Area区域(也就是显示时间和电池容量的区域)调出Status Menu。如下图所示,右下角的区域就是QStarDictStatus Menu插件。

 

如上图所示,QStarDictStatus Menu插件由三个按钮组成。从左到右依次为:打开/关闭屏幕取词翻译、新打开被关闭的主窗口、退出程序。QStarDictStatus Menu插件通过QStarDict提供的DBus接口对QStarDict进行相应的控制。

 

5、屏幕取词翻译

QStarDict支持全局的屏幕取词翻译。通过Status Menu插件上左边第一个按钮或程序菜单上的“Scan”按钮可以控制开启或关闭屏幕取词功能。当屏幕取词功能开启后,程序将通过两种方式提醒用户。

首先程序将弹出一个Information Box提醒用户,如下图所示。

 

 

当屏幕取词功能开启后,用户就可以在任何程序中进行取词翻译了。由于在Maemo5平台上,Qt的Popup Window属性无法全局使用,因此,这里我用Maemo5特有的Information Box代替了Popup Window。当用户选中某一个单词后,QStarDict将弹出一个Information Box来显示查询结果。如下图所示。

 

6、总结

通过这半个多月的开发,使我们对Qt这一框架有了更深入的了解。Qt简单易懂的接口,加上详细的文档,使我阅读代码的工作变得异常轻松,也大大提高了我的编程效率。目前诺基亚已经把Qt作为他们唯一的C++编程框架,掌握了Qt,就能为诺基亚的Symbian、Maemo乃至以后的MeeGo平台编写应用,并且由于Qt强大的跨平台性,这些应用也可以运行在Windows、Linux、Mac OS 等主流桌面平台上。在这里我们也希望越来越多的开发者加入Qt开发者的行列。

另外,Shanghai MeeGo Network已经建立,欢迎大家加入。

网址:http://www.linkedin.com/groups?mostPopular=&gid=3669356

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值