一直以来,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。如下图所示,右下角的区域就是QStarDict的Status Menu插件。

如上图所示,QStarDict的Status Menu插件由三个按钮组成。从左到右依次为:打开/关闭屏幕取词翻译、新打开被关闭的主窗口、退出程序。QStarDict的Status 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

一个新的Maemo5平台下的QStarDict移植版本相关推荐

  1. windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息

    GetsysInfo.h: #ifndef _H_GETSYSINFO #define _H_GETSYSINFO#pragma once#include <afxtempl.h>clas ...

  2. Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy

    Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy 原文连接: https://blog.csdn.net/wsj18808050/article/details/ ...

  3. jboss jta mysql_JBoss平台下JTA与JMS实验软件架构8

    1 JTA 简介: Java Transaction API,JTA Transaction 是指由J2EE Transaction manager 去管理的 事务.通过调用UserTransacti ...

  4. .net平台下C#socket通信(上)

    .net平台下C#socket通信(上) 完全是基础,新手可以随意看看,大牛可以关闭浏览页了,哈哈. 在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳 ...

  5. .net平台下C#socket通信(中)

    本文主要讲述: 1.正常通信中握手建立 2.一对多的通信 3.发送接收数据格式转换 4.资源释放 5.开启并保持服务监听 1.握手建立正常的通信通道 项目需要通信的双方(假设是一个上位机.一个下位机) ...

  6. Linux系列-Red Hat5平台下的LAMP网站服务搭建(四)

    Linux系列-Red Hat5平台下的LAMP网站服务搭建(四)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com: ...

  7. BEA WebLogic平台下J2EE调优攻略--转载

    BEA WebLogic平台下J2EE调优攻略   2008-06-25 作者:周海根 出处:网络   前 言 随着近来J2EE软件广泛地应用于各行各业,系统调优也越来越引起软件开发者和应用服务器提供 ...

  8. 各种平台下Perl模块的安装方法

    各种平台下Perl模块的安装方法 来源:http://www.linuxforum.net David lee (2001-04-21 18:11:53) Perl到了第五版增加了模块的概念,用来提供 ...

  9. .NET平台下WEB应用程序的部署(安装数据库和自动配置)

    .NET平台下WEB应用程序的部署(安装数据库和自动配置)   李洪根 在.NET平台下,部署 Web 解决方案是比较方便的.我们可以利用Visual Studio.NET 2003添加一个WEB安装 ...

最新文章

  1. anki 新的卡片类型_梁宝川:这一类型Anki卡片,你做了吗?
  2. html5 呼吸灯效果,jQuery仿地铁线路指示灯效果
  3. 【Paper】2013_An efficient model predictive control scheme for an unmanned quadrotor helicopter
  4. happiness[国家集训队2011(吴确)]
  5. 服务器上有涉密文件,涉密文件保密管理规定
  6. c语言计算机动画生成原理,计算机组成原理动画演示系统 - 源码下载|多媒体|源代码 - 源码中国...
  7. Codeforces Round #523 (Div. 2)
  8. 1644 免费馅饼 题解(c++)(S.B.S.)
  9. scp命令不会复制隐藏文件
  10. 5G 爆发前夕,这些科技巨头们聚在一起“密谋”了些什么?!
  11. 阿里云企业邮箱的imap和pop3设置
  12. canvas 烟花特效
  13. php增加横排文字的间距,html段落内文字设置字间距间隔
  14. 【uni-app】封装websokcet以及使用方法
  15. IDEA配置远程debug调试
  16. 如何给深度学习加速——模型压缩、推理加速
  17. Element ui Avatar头像管理组件 实现当用户没有头像时 以名称最后一个字为头像
  18. Flood fill algorithm
  19. 让您的照片动起来first motion model(1)-关键点抽取模型深度解析
  20. quarkus数据库篇之一:比官方demo更简单的基础操作

热门文章

  1. 导出.xcarchive in XCode 6?
  2. 读书笔记-精准努力-自信与自卑
  3. 林仕鼎:架构设计与架构师
  4. xamarin可视 对讲_BoxView 类 (Xamarin.Forms) | Microsoft Docs
  5. 推荐 5 个 火火火火 的 帮你提高 CSS 技巧项目
  6. Hexo引入Mermaid流程图和MathJax数学公式
  7. Java学习笔记14(接口+工厂模式)
  8. 瓦片地图之WMS服务(GeoServer)
  9. python抢票代码_如何使用python爬取抢票?
  10. HTML+CSS大作业:基于HMTL校园学校网页设计题材【我的学校网站】