qt
有兩種與外掛程式有關的
api。一種用來擴充套件
qt本身的功能,如
自定義資料庫驅動、影象格式、文字編譯碼等,稱為
higher-level ap
,既高階介面。另一種用於應用程式的功能擴充套件,稱為
lower-level api
,低階介面。前一種是建立在後一種的基礎之上的。前一種是擴充套件
qt已有的一些外掛程式系統。後者可以讓開發者自己實現以乙個外掛程式系統。
讓應用程式支援外掛程式擴充套件的步驟:
1. 定義乙個介面集
(只有純虛函式的類
),用來與外掛程式交流。
2. 用巨集
q_declare_inte***ce
()將該介面告訴
qt元物件系統。
3. 應用程式中用qpluginloader
來裝載外掛程式。
4. 用巨集qobject_cast
()來確定乙個外掛程式是否實現了介面。
示例**如下:
介面類宣告: 1
class
filterinte***ce25
virtual
qstringlistfilters()
const=0
;6virtual
qimagefilterimage(
const
qstring
&filter,
const
qimage
&image,qwidget* parent)=0;7
};89q_declare_inte***ce(filterinte***ce,
"com.trolltech.plugandpaint.filterinte***ce/1.0")
是實現該介面的外掛程式類的定義: 1
#include
2#include
3#include45
#include67
class
extrafiltersplugin:
public
qobject,
public
filterinte***ce8;
Qt之深入理解外掛程式系統
簡述 要開發乙個成功的系統,外掛程式是必經之路。1.對於小朋友來說,積木是木頭塑料,用這些小積木可以拼成房子 動物。2.對於建築工人來說,積木是零磚碎瓦,用這些小積木可以構建高樓大廈。3.對於程式設計師來說,積木可以看做是外掛程式 更高階一點 用這些小積木可以搭建大系統。很多人認為外掛程式化很複雜,...
Qt 外掛程式路徑
qt manual 已經專門介紹了deploying plugins 的問題。半年前qt 外掛程式學習 一 也簡單整理了一點路徑相關的問題。可是,一直以來沒理清 外掛程式 編譯碼外掛程式 資料庫外掛程式.到底是如何被載入的?如果我們需要開啟或儲存乙個jpg格式的,那麼需要載入jpg的外掛程式。程式去...
Qt 外掛程式總結
1 介面的定義 step 1 定義介面 class regexpinte ce virtual qstring regexp const qstring message 0 step 2 宣告介面 使用 q declare inte ce 巨集,是為了讓qt元物件系統知道該介面,這樣以來,在執行時便...