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 可以使用...