Qt 外掛程式系統的使用和簡單示例

2021-10-04 12:27:18 字數 1937 閱讀 4308

qt 有自己的外掛程式系統, 使用外掛程式框架開發程式, 便於擴充套件和管理, 外掛程式實際上是動態庫, 個人理解是與動態庫的區別是有乙個外掛程式管理器, 使用相同的呼叫約定.

這個demo的功能是傳送乙個message字串到外掛程式的函式, 並返回顯示

echoplugin: 外掛程式子專案, 生成dll外掛程式

mainwindow: 主視窗 , 呼叫外掛程式

先不說細節, 只講大概的思路

echoplugin

<1> pro中外掛程式的相應配置

<2> 建立外掛程式類, 實現相關的方法

mainwindow

<1> 定義外掛程式的呼叫標頭檔案, 裡面是外掛程式類的宣告, 都是虛方法, 用於在建立外掛程式物件時過載

<2> 載入外掛程式類並使用

上部分核心**

mainwindow子專案

echointe***ce.h 宣告外掛程式虛方法的標頭檔案

#ifndef echointe***ce_h

#define echointe***ce_h

#include class echointe***ce

virtual qstring echo(const qstring &message) = 0;

};#define echointe***ce_lib "example.plugin.echointe***ce"

qt_begin_namespace

q_declare_inte***ce(echointe***ce, echointe***ce_lib)

qt_end_namespace

#endif // echointe***ce_h

loadplugin() 載入外掛程式

bool widget::loadplugin()

#elif defined(q_os_linux)

pluginsdir.cdup();

#endif

//切換到外掛程式目錄

pluginsdir.cdup();

pluginsdir.cd("plugins");

qdebug() << pluginsdir;

//遍歷plugins目錄下所有檔案

foreach (qstring filename, pluginsdir.entrylist(qdir::files))

else}}

return ret;

}

sendecho 使用外掛程式方法

void widget::sendecho()

echoplugin 外掛程式子專案

echointe***ce.h

#ifndef echoplugin_h

#define echoplugin_h

#include #include #include "echointe***ce.h"

class echoplugin : public qobject, public echointe***ce

;#endif // echoplugin_h

echointe***ce.cpp

#include "echoplugin.h"

echoplugin::echoplugin(qobject *parent) :

qobject(parent)

qstring echoplugin::echo(const qstring &message)

q_export_plugin2(echoplugin, echoplugin)

簡單QT程式設計的示例

使用你所熟悉的編輯器建立hello.cpp 如下 include int main int argc,char argv 1 確認系統是否已經安裝4.x版本的qt path path usr lib qt4 bin 3 執行source重新匯入環境變數 source etc profile 4 建立...

memcache的簡單使用示例

在實際應用中我們會快取從資料庫中查出來的結果集,以md5 sql 為 key,結果集為值。以只是在php簡單應用 建立memcache鏈結 memcache new memcache memcache connect 127.0.0.1 11211 新增資料 memcache add name 王召...

C bitset的簡單使用示例

bitset 一般代替 bool 陣列使用,常用於優化空間,因為 bitset 中乙個元素只佔 1 bit。bitset 的大小在定義使就需要確定。如果想要不定長的 bitset,就需要使用 vector。bitset 的定義 bitset 16 bt 定義大小為16的bitset,每一位都是0 b...