Qt外掛程式應用小結

2021-08-18 07:09:06 字數 1482 閱讀 6808

1. 當乙個外掛程式具有多個inte***ce的時候,使用qpluginloader得到外掛程式的object後,可以將object分別轉為各個介面型別

例如:qt example basictools(外掛程式) 和 plugandpaint(使用外掛程式),qt的兩個例子

class basictoolsplugin : public qobject,

public brushinte***ce,

public shapeinte***ce,

public filterinte***ce

qpluginloader loader("basictoolsplugin");

qobject * object = loader.instance();

brushinte***ce *brush = qobject_cast

(object);

if(brush){}

shapeinte***ce *shape = qobject_cast(object);

if(shape){}

filterinte***ce *filter = qobject_cast(object);

if(filter){}

2. 使用qdesignercustomwidgetinte***ce介面建立乙個可以顯示的外掛程式

ps:這個介面屬於design模組,所以需要在.pro檔案中加入 qt += designer

class qdesignercustomwidgetinte***ce

virtual qstring name() const = 0;

virtual qstring group() const = 0;

virtual qstring tooltip() const = 0;

virtual qstring whatsthis() const = 0;

virtual qstring includefile() const = 0;

virtual qicon icon() const = 0;

virtual bool iscontainer() const = 0;

virtual qwidget *createwidget(qwidget *parent) = 0;//需要重點實現的類,在這個類中建立外掛程式的窗體,並且返回。

virtual bool isinitialized() const

virtual void initialize(qdesignerformeditorinte***ce *core)

virtual qstring domxml() const

virtual qstring codetemplate() const

};

只要有了寫外掛程式的基礎,這個顯示類也非常容易理解。我們只需要重點實現createwidget(),在載入外掛程式後呼叫createwidget() 返回我們要顯示的外掛程式,大工告成。

Qt應用MySQL小結

二qsqltablemodel類 三qsqlrelationaltablemodel類參考 本著應用驅動學習的理念,實踐了兩個qt mysql的小專案,列車時刻表查詢系統 和 酒店客房管理系統 熟悉了qt運算元據庫的主要方法,簡要總結於此。qsqlquery query query.prepare ...

利用外掛程式擴充套件Qt應用程式

不僅 qt 本身可以通過外掛程式進行擴充套件,而且 qt 應用程式也可以通過外掛程式來擴充套件,這需要應用程式使用qpluginloader檢測和載入外掛程式。在這種情況下,外掛程式可能提供任意功能,不限於資料庫驅動程式 影象格式 文字編解碼器 樣式以及擴充套件 qt 功能的其他型別的外掛程式。原始...

外掛程式化小結

2 在編譯的時候會將子外掛程式偽裝為so,並且合併manifest。3 子外掛程式可以直接編譯為apk,他只需要負責實現自己的功能即可,盡量避免多個直外掛程式之間互相干擾。4 如果在apk發布後需要動態載入新的頁面也業務。manifest是沒有辦法改變的,如何找到這個activity呢?a 可以使用...