在工程目錄,也就是需要新增外掛程式的工程下,建立乙個新的類,可以稱作介面類,需要注意的是介面類必須是乙個純虛函式
在介面類的最後,必須使用巨集q_declare_inte***ce()。他的第乙個引數是這個介面的名字,第二個引數是乙個確定介面的字串。
#ifndef filterinte***ce_h
#define filterinte***ce_h
class filterinte***ce
virtual void test() = 0;
};q_declare_inte***ce(filterinte***ce,"com.trolltech.plugandpaint.brushinte***ce/1.0")
#endif // filterinte***ce_h
外掛程式類必須繼承自qobject,在實現外掛程式類前需要先配置外掛程式類的pro
template = lib
config += plugin
includepath += "e:/chajian/inte***ce"
includepath為上一步的介面類的標頭檔案
外掛程式類的定義:
#ifndef extrafiltersplugin_h
#define extrafiltersplugin_h
#include #include #include class extrafiltersplugin : public qobject, public filterinte***ce
;#endif // extrafiltersplugin_h
q_plugin_metadata() iid為第一步介面的字串,file 是json檔案的路徑,可為空
外掛程式類的實現:
#include "extrafiltersplugin.h"
#include extrafiltersplugin::extrafiltersplugin(qobject *parent) : qobject(parent)
void extrafiltersplugin::test()
//版本檢查
#if qt_version < qt_version_check(5, 0, 0)
q_export_plugin2(plugextrafilters,extrafiltersplugin)
#endif
q_export_plugin2()是4.0版本的,在5.0版本被捨棄,所以需要q_plugin_metadata() 來驗證
#include "mainwindow.h"
#include int main(int argc, char *argv)
mainwindow w;
w.show();
return a.exec();
}
同樣也需要包含介面類的標頭檔案。
qpluginloader類提供了乙個函式loader來載入外掛程式的例項,如果動態鏈結庫不是乙個外掛程式,或者編譯的qt的版本庫不對,返回的qobject物件的指標為空。
使用unload函式來解除安裝外掛程式。
golang GUI開發 Qt5的安裝
golang一直被認為沒有好的gui庫,事實並非如此。目前有基於gtk 3.0的gotk3 以及接下來我們要說的qt 這是基於最新的qt5 5.11 的非官方的binding。選用qt的理由 選擇therecipe qt的理由是首先因為它提供的api與原生qt以及其他binding 例如pyqt5 ...
Qt5 嵌入式裝置QT5動態庫編譯,QT5移植
perl 5.8 or later python 2.7 or later c compiler supporting the c 98 standard sdk提供 編譯套裝 sudo apt get install build essential sudo apt get install git...
Qt5開發 QT概述 Qt應用程式框架
第一篇 qt概述 qt是諾基亞公司的c 視覺化開發平台。與vc 相比,qt簡單方便 功能完善 跨平台 擴充套件功能強,可用於嵌入式開發。它是乙個跨平台的c 圖形介面應用程式框架 c gui 它是完全物件導向的,很容易擴充套件,並且可應用於元件程式設計。qt分商業版和開源版,其中商業版為商業軟體提供開...