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...