自定義外掛程式
建立自定義外掛程式1.
建立工程
qt4 designer plugin
後續配置都使用預設值,這裡我們建立乙個
qhist
外掛程式。2.
新建後,直接編譯,會產生如下錯誤
1>link : fatal error lnk1181: cannot open input file 'qtdesignerd.lib'
這是因為此工程預設引用的是
qtdesignerd.lib
庫,更改其為版本對應的庫即可消除故障,我這裡使用的是
qtdesignerd4.lib
(release版本使用
qtdesigner4.lib
)。3.
修改檔案,增加宣告,如下:
修改前:
#include
class
qhist : public
qwidget
修改後#include
#include
class
qdesigner_widget_export
qhist : public
qwidget
如果不執行此操作,後續應用程式連線時,會上報鏈結錯誤:
error lnk2019: 4.
實現外掛程式,這裡我只是在此控制項中繪製了一條直線。
過載paintevent事件
protected:
void
paintevent(qpaintevent *event);
void
qhist::paintevent(qpaintevent *event)
這時,編譯會報錯誤,原因是qhist.cpp中還缺少標頭檔案,引入即可消除:
#include
5.編譯
release
版本6.
到此我們就完成了外掛程式的建立;
使用自定義外掛程式(qt designer
)1.
將編譯生成的相關檔案拷貝到qt的
plugins/designer
目錄;2.
將qhist.h
檔案拷貝到
qt所在的
include/qtgui
目錄;到此,開啟
qt designer
,即可看到新增的
qhist
外掛程式了;
使用自定義外掛程式(
)1.
將編譯生成的相關檔案拷貝到用用工程所在的工程目錄;
到此,編譯應用程式,執行即可正常使用自定義的外掛程式了;
建立多個外掛程式到乙個外掛程式庫
前面介紹的是生成單個自定義外掛程式,
qt還支援將多個自定義外掛程式生成到乙個外掛程式庫中,如下:
1.建立乙個外掛程式庫工程,工程名為
mycustomwidgets;2.
建立新的
類,分別是
qhist
,qhistplugin
,qscatter,qscatterplugin,相關實現**參見上述單個外掛程式的實現,和先前的唯一差別就是:原始檔末尾不在需要新增
q_export_plugin2
宣告;3.
修改mycustomwidgets
的定義和實現,如下:
//
標頭檔案
#include
#include
#include
"qhistplugin.h"
#include
"qscatterplugin.h"
class
mycustomwidgets: public
qobject, public
qdesignercustomwidgetcollectioninte***ce;
//
原始檔
#include
"mycustomwidgets.h"
mycustomwidgets
::mycustomwidgets(qobject *parent)
: qobject(parent)
qlist
mycustomwidgets::customwidgets() const
q_export_plugin(mycustomwidgets)這裡從
qdesignercustomwidgetcollectioninte***ce
派生了乙個子類mycustomwidgets;
4.編譯
release
版本,將此庫檔案拷貝到
designer
相關目錄,此時新開啟
qt designer
將可以看到兩個自定義外掛程式;
自定義外掛程式
工具類方法 擴充套件的語法 extend 呼叫 方法名 物件級別的方法 擴充套件語法 fn.extend 呼叫 選擇器 方法名 工具類 工具類方法 extend extend rtrim function str randomcode function num else if num 4 retur...
cordova 自定義外掛程式
在使用cordova 的過程中,雖然官方提供的外掛程式以及其他人開源的外掛程式較多。但有時為了實現某種需求,還是需要自己編寫外掛程式。以前總是會手動的配置cordova外掛程式,具體可以參考phonegap手動配置外掛程式 今天主要是介紹官方提供的plugman來建立外掛程式 首先,安裝plumam...
jquery自定義外掛程式
jquery自定義外掛程式的幾種常用的方法 第一種方法 fn.fun function target fun 第二種方法 fn.extend target fun 第三種方法 extend fun 在這裡需要詳細解釋一下jquery的api extend var obj1 var obj2 var ...