Qt 外掛程式系統

2021-06-09 17:20:54 字數 1076 閱讀 5202

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元物件系統知道該介面,這樣以來,在執行時便...