Qt Plugins框架分析

2021-07-10 05:21:51 字數 1930 閱讀 4960

採用自頂向下的方法,先來看看怎麼使用,然後再分析是怎麼實現的。

建立外掛程式的方式有兩種:

* 上層api,用來擴充套件qt庫的功能,例如增加資料庫驅動、格式的支援、以及自定義應用程式風格。

* 底層api,用來擴充套件qt應用程式的功能。

編寫乙個自定義風格的外掛程式,qt示例。

檔案清單

plugin.pro

******style.cpp 外掛程式的實現

******style.h

******style.json 描述關鍵字

******styleplugin.cpp 簡單工廠,根據指定的關鍵字,生成相應的物件

******styleplugin.h

plugin.pro其中,這一行是自己加行去的other_files += ******style.json,方便在qtcreator中檢視。

#! [0]

template = lib

config += plugin

qt += widgets

headers = ******style.h \

******styleplugin.h

sources = ******style.cpp \

******styleplugin.cpp

target = ******styleplugin

other_files += ******style.json

******styleplugin.h外掛程式工廠類

#include 

qt_begin_namespace

class qstringlist;

class qstyle;

qt_end_namespace

//! [0]

class ******styleplugin : public qstyleplugin

//qstringlist keys() const; //這個函式是沒有作用的,大概是老版本的qt使用這個函式來獲取關鍵字,示例程式還沒有修改吧。

qstyle *create(const qstring &key) q_decl_override;

};//! [0]

******styleplugin.cpp外掛程式工廠類的實現

#include 

#include "******styleplugin.h"

#include "******style.h"

//! [1]

//簡單工廠,根據關鍵字,來生成相應的物件,可以實現在乙個外掛程式內支援多種風格。

qstyle *******styleplugin::create(const qstring &key)

//! [1]

******style.h******style.cpp,是這個簡單風格的實現。

#include 

#include "******style.h"

//把qpushbutton的背景設定為紅色

void ******style::polish(qpalette &palette)

******style.json用來描述支援的風格名稱,可以有多個,以分號隔開。

測試的時候,把生成的lib******styleplugin.so複製到安裝目錄下的plugins/styles目錄裡,或者用qt.conf來指定外掛程式目錄路徑。

Linux PPP 框架分析

1.介紹 通過對linux源 的分析,了解ppp裝置在linux內的工作原理.順便了解一下pppoe如何利用ppp裝置來完成上網的工作的.下面是 研究的基礎版本 software version linux核心 2.6.15 pppd ppp 2.4.3 pppoe rp pppoe 3.8 2.p...

openwrt框架分析

這次講講openwrt的結構.1.上來看有幾個重要目錄package,target,build root,bin,dl.build dir host目錄是建立工具鏈時的臨時目錄 build dir toolchain 是對應硬體的工具鏈的目錄 staging dir toolchain 則是工具鏈的...

openwrt框架分析

這次講講openwrt的結構.1.上來看有幾個重要目錄package,target,build root,bin,dl.build dir host目錄是建立工具鏈時的臨時目錄 build dir toolchain 是對應硬體的工具鏈的目錄 staging dir toolchain 則是工具鏈的...