Qt5外掛程式開發

2021-08-06 04:40:05 字數 1609 閱讀 6116

在工程目錄,也就是需要新增外掛程式的工程下,建立乙個新的類,可以稱作介面類,需要注意的是介面類必須是乙個純虛函式

在介面類的最後,必須使用巨集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分商業版和開源版,其中商業版為商業軟體提供開...