成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解 Qt 動態插件編寫要點

移動開發
本文介紹的是Qt 動態插件編寫要點,一般在編程的過程中都要注意編寫規則,那么性質一樣,先來看本文內容。

Qt 動態插件編寫要點是本文要介紹的內容,有介紹Qt插件在.pro工程文件中的內容,不多說了,先來看內容。

一、編寫插件的四個步驟

1. 聲明一個插件類。

2. 實現插件提供的接口。

3. 使用Q_EXPORT_PLUGIN2() 宏導出插件。

4. 使用一個適當的.pro工程文件構建插件。

二、聲明插件類

我們繼承QObject和接口類(interface類)兩個類來構造這個插件類。Q_INTERFACES宏告知Qt這個類實現的是哪個接口。如:

  1. Q_INTERFACES(FilterInterface) 

三、實現插件提供的接口

在插件類的實現文件中實現插件所提供的接口,供調用。

四、導出插件

在插件接口實現文件中,我們使用Q_EXPORT_PLUGIN2宏讓Qt知道該類是一個插件。如:

  1. Q_EXPORT_PLUGIN2(pnp_extrafilters, ExtraFiltersPlugin); 

***個參數是插件的名字;通常給予插件和其生成的目標庫文件(.pro中TARGET變量所賦的名字)有著相同的名字。

五、動態插件的 .pro工程文件

Here’s the project file for building the Extra Filters plugin:

TEMPLATE      = lib     //模塊設置,lib指生成庫文件,app指生成應用程序(默認)

CONFIG       += plugin  //CONFIG用來告訴qmake關于應用程序的配置信息,靜態插就添加為plugin static。
      
INCLUDEPATH  += ../..    //INCLUDEPATH變量設置全局頭文件的尋找路徑(例如使用

#include <…>包含的頭文件) “.”當前目錄,”..”上一層目錄。(在這里是為了能夠添加接口定義文件interface.h)  

HEADERS       = extrafiltersplugin.h  //工程中包含的頭文件

SOURCES       = extrafiltersplugin.cpp //工程中包含的源文件

TARGET        = $$qtLibraryTarget(pnp_extrafilters) //TARGET變量指定生成的目標庫文件的名字,生成應用程序時即指定生成應用程序名

通常TARGET和插件(由Q_EXPORT_PLUGIN2設置)擁有相同的名字。
    
DESTDIR         = ../../plugandpaint/plugins  //DESTDIR變量指定我們要安裝(生成)

插件的地方,即指定放置生成的應用程序(插件)的目錄。
    
用藍色字體顯示的表示根據具體應用程序會做相應改變。

六、接口的定義

接口類定義了插件所提供的函數。一個接口是一個只由純虛函數組成的類。

我們使用Q_DECLARE_INTERFACE宏讓Qt的元對象系統(meta object system)注意到接口。如:

  1. Q_DECLARE_INTERFACE(FilterInterface, "com.trolltech.PlugAndPaint.FilterInterface/1.0"); 

這樣做才有可能在運行時識別插件并實現接口。第二個參數是一個必須以唯一的方式識別接口的字符串。

注:Qt Creator編譯鏈接后會將可執行文件生成到一個projectname_build_desktop的目錄中,如想要生成的文件生成在源代碼所在目錄下,方法如下:

 選擇Qt Creator左邊的“Project”標簽,General欄目中有一個選擇框“Shadow Build”,取消即可。
 
Shadow Build也就是使構建生成的目錄和源代碼目錄分開,可根據自己的使用習慣設置。

七、插件Qt工程文件.pro往Visual Studio 2005中的移植

Qt插件的.pro工程文件中,會包含構建插件所需的特定配置信息,在VS 2005中寫插件程序時,需要在工程屬性中進行對應配置,才能順利生成動態插件。

注:在Qt或VS 2005中編寫Qt插件程序,都是建立Qt C++的控制臺應用程序工程。

以下是Qt Creator中.pro文件和VS 2005中配置信息的對應實現關系:

1、TEMPLATE     = lib   VS中對應設置:工程屬性配置屬性常規項目默認值配置類型其值改為 動態庫(.dll)
  
2、CONFIG      += plugin  這個貌似在VS中沒有配置的地方

3、INCLUDEPATH += .  VS中對應設置:工程屬性配置屬性C/C++常規附加包含目錄中其值在***添加.,即當前路徑。
       
4、SOURCES += \      helloworldplugin.cpp
       
5、HEADERS += \     helloworldplugin.h
       
6、TARGET       = $$qtLibraryTarget(helloworld)    DESTDIR      = ./plugin  VS中對應設置:工程屬性配置屬性鏈接器 輸出文件將其值改為 plugin\helloworld.dll

小結:詳解 Qt 動態插件編寫要點的內容介紹完了,希望本篇文章對你有幫助!!!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-09-01 14:04:45

QT Webkit插件

2011-06-27 17:24:37

Qt 插件

2011-06-24 15:16:33

Qt 插件

2011-09-01 16:01:25

Qt插件

2011-07-05 17:54:43

QT Sqlite ARM

2011-06-24 09:01:20

Qt QLibrary dll

2011-08-23 18:04:40

LuaWiresharkDissector

2011-09-01 15:51:53

Qt插件VS 2010

2011-06-30 13:37:29

MFC Qt 多國語

2011-07-05 16:59:15

Qt 動態 鏈接庫

2011-06-23 10:16:55

VS2010 QT 4.7.2 QT

2011-07-05 17:07:46

Qt 插件 模塊

2012-05-10 09:46:02

動態數據中心

2011-06-29 10:46:01

Qt Eembedded Linux

2011-06-16 13:23:35

Qt 模塊化 插件式

2011-03-28 11:20:11

Nagios 插件

2011-04-06 16:02:26

Nagios插件

2011-07-13 10:36:53

Delphi

2011-06-23 14:27:48

QT QLibrary 動態庫

2011-04-21 09:46:41

設計模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区乱码在线 | 欧美精品一区二区三区在线 | 午夜精品久久久久久久久久久久久 | 一区二区三区在线 | 欧 | 午夜视频一区二区 | 99精品欧美一区二区三区 | 中文字幕日本一区二区 | 在线观看成人小视频 | 国产一区二区三区免费观看视频 | 精品三级在线观看 | 国产伦精品一区二区三区高清 | 日本一区二区三区在线观看 | 亚洲女人的天堂 | 天天草夜夜骑 | 日韩久久久久久 | 亚洲精品性视频 | 国产91久久久久久 | 久久久一区二区三区 | 国产一区二区黑人欧美xxxx | 一区二区三区在线播放 | av高清毛片| 成人在线视频免费播放 | 男女午夜免费视频 | 国产成人精品在线播放 | 中文字幕亚洲一区二区三区 | 国产成人综合在线 | 午夜精品网站 | 美女在线国产 | 久久一区二区三区四区五区 | 欧美黄色录像 | av官网在线 | 亚洲精品丝袜日韩 | 国产成人综合网 | 九九热在线精品视频 | 国产精品久久久久久久久久 | 亚洲国产欧美日韩 | 欧美一级二级在线观看 | 久久久女女女女999久久 | 免费看一区二区三区 | 黄色一级在线播放 | 久久午夜视频 |