开源项目之跨平台的词典软件 GoldenDict
2012-09-19 20:16
225 查看
GoldenDict 是一款不错的、与 StarDict(星际译王)类似的词典软件。它使用 WebKit 作为渲染核心,格式化、颜色、图像、链接等支持一应俱全;支持多种词典文件格式,包括 Babylon 的 .BGL 文件、StarDict 的 .ifo/.dict/.idx/.syn 文件、Dictd 的 .index/.dict(.dz) 文件、ABBYY Lingvo 的 .dsl/.lsa/.dat 文件;可查询 Wikipedia、Wiktionary
等基于 MediaWiki 的 Wiki 网站,且能够通过模板 Url 模式来使用其他的在线词典网站;具有基于 Hunspell 的 morphology 系统;包含完整的 Unicode 支持、scan 弹窗及全局热键等功能。效果如图:
QtSingleApplication组件提供支持应用程序,对于某些应用程序,它是有非常有用的,甚至是关键的。该应用程序应该激活并启动已经运行的实例,并且可以执行请求的操作,例如加载一个文件。
QtSingleApplication类提供了一个接口来检测正在运行的实例,该实例发送命令字符串。对于控制台(非GUI)应用程序,QtSingleCoreApplication变种,从而避免依赖于QtGui。
如下是显示了如何将现有的应用程序使用QtSingleApplication:
这个例子演示了如何使用的QtSingleApplication类检测和交流使用的sendMessage(API)的应用程序的运行实例。一个QTextEdit日志显示接收到的消息(messageReceived)。
学习的目标是成熟!~~~
源码包下载
等基于 MediaWiki 的 Wiki 网站,且能够通过模板 Url 模式来使用其他的在线词典网站;具有基于 Hunspell 的 morphology 系统;包含完整的 Unicode 支持、scan 弹窗及全局热键等功能。效果如图:
QtSingleApplication组件提供支持应用程序,对于某些应用程序,它是有非常有用的,甚至是关键的。该应用程序应该激活并启动已经运行的实例,并且可以执行请求的操作,例如加载一个文件。
QtSingleApplication类提供了一个接口来检测正在运行的实例,该实例发送命令字符串。对于控制台(非GUI)应用程序,QtSingleCoreApplication变种,从而避免依赖于QtGui。
如下是显示了如何将现有的应用程序使用QtSingleApplication:
// Original int main(int argc, char **argv) { QApplication app(argc, argv); MyMainWidget mmw; mmw.show(); return app.exec(); } // Single instance int main(int argc, char **argv) { QtSingleApplication app(argc, argv); if (app.isRunning()) return !app.sendMessage(someDataString); MyMainWidget mmw; app.setActivationWindow(&mmw); mmw.show(); return app.exec(); }如下实例日志视图显示相同的应用程序的其他实例发送的消息。
这个例子演示了如何使用的QtSingleApplication类检测和交流使用的sendMessage(API)的应用程序的运行实例。一个QTextEdit日志显示接收到的消息(messageReceived)。
#include <qtsingleapplication.h> #include <QtGui/QTextEdit> class TextEdit : public QTextEdit { Q_OBJECT public: TextEdit(QWidget *parent = 0) : QTextEdit(parent) {} public slots: void append(const QString &str) { QTextEdit::append(str); } }; #include "main.moc" int main(int argc, char **argv) { QtSingleApplication instance(argc, argv); //立即创建一个QtSingleApplication对象 if (instance.sendMessage("Wake up!")) return 0; //只允许一个实例 TextEdit logview; logview.setReadOnly(true); logview.show(); //创建窗体!~ instance.setActivationWindow(&logview); QObject::connect(&instance, SIGNAL(messageReceived(const QString&)), &logview, SLOT(append(const QString&))); return instance.exec(); //日志查看对象也被设置为应用程序的激活窗口。每次收到一条消息,该窗口将被提出并自动激活。 //每接收到的消息将显示在日志中。 //事件循环被输入。
学习的目标是成熟!~~~
源码包下载
相关文章推荐
- .NET 跨平台开源项目——Mono介绍
- 敏捷项目开源管理软件ScrumBasic(2)- 多项目支持
- 开源项目管理软件产品对比分析资料整理
- 开源项目 rails4scm 软件配置管理
- 开源项目管理软件-redmine
- 【禅道】项目管理软件实施安装-开源版
- 《借助开源项目,学习软件开发》
- JR 开源软件项目(工具软件)
- [转载]最好的53个 VC++ /MFC 开源软件项目
- iphone的PC端管理软件开源项目
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(十):开源空间信息软件体系与技术概述
- 项目回顾之一:PlanBetter时间管理软件(基于Android平台)【已开源】
- 跨平台团队协作项目源码管理软件Mercurial客户端TortoiseHg
- 软件开发相关开源项目分类
- 开源软件开发项目管理软件
- 开源项目管理软件ProjectPier安装笔记
- 一个定期翻译国外Android优质的技术、开源库、软件架构设计、测试等文章的开源项目 http://www.devtf.cn
- Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》
- 推荐30款开源项目管理软件
- 用于个人开源项目的免费软件开發生命周期(SDLC)工具