開源專案之跨平臺的詞典軟體 GoldenDict
阿新 • • 發佈:2019-02-01
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(); //日誌檢視物件也被設定為應用程式的啟用視窗。每次收到一條訊息,該視窗將被提出並自動啟用。 //每接收到的訊息將顯示在日誌中。 //事件迴圈被輸入。
學習的目標是成熟!~~~