開源項目之跨平台的詞典軟體 GoldenDict

來源:互聯網
上載者:User

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:

 // 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();//日誌查看對象也被設定為應用程式的啟用視窗。每次收到一條訊息,該視窗將被提出並自動啟用。//每接收到的訊息將顯示在日誌中。//事件迴圈被輸入。


學習的目標是成熟。~~~

源碼包下載


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.