自定义QT控件(插件)流程

来源:互联网 发布:c语言 fft 编辑:程序博客网 时间:2024/05/16 01:36
标题:自定义QT控件(插件)流程
作者:kagula
时间:2015-03-30
环境:
[1]VS2010SP1
[2]QT5.41,安装路径为“C:\Qt\5.4\msvc2010_opengl
[3]Qt5 Addins 1.24(for Visual Studio Plugin)


关键词:
    QT Widget
内容概要:
    介绍开发QT插件(自定义QT Widget)DLL文件的流程。


正文
第一步:新建项目"kagulaQt541Plugin"项目
[Qt5 Projects]->[Qt5 Designer Plugin],向导为我们新建了两个class。
class“KagulaQT541Plugin”,继承了QObject和QDesignerCustomWidgetInterface两个class。
只能有一个这样的类,这个类告诉QT Designer如何加载这个控件。
class“KagulaQT541”,继子 QWidget,是我们要编写的自定义Widget。


第二步:
参考资料[1]我们编写自己的第一个自定义Widget。
修改kagula541.h文件,添加下面的头文件
#include <QtDesigner/QDesignerExportWidget>
在这个头文件里,在“class”关键词后面"QDESIGNER_WIDGET_EXPORT"宏,这里你的项目才能导出这个class,
而QT App(调用者)才能通过这个宏调用“Plugin DLL”这个class的实现。


第三步:引用自定义插件
新建调用者项目,在调用者项目中,
[3-1]添加,头文件搜索路径。
[3-2]添加,库文件搜索路径,Debug对应Debug,Release对应Release。


第四步:部署与运行
    QT插件项目以Release方式编译,在“D:\workspace\KagulaQT541Plugin\Win32\Release”目录下生成“KagulaQT541Plugin.dll”
把这个文件复制到“C:\Qt\5.4\msvc2010_opengl\plugins\designer”目录,启动“QT designer”[帮助]->[关于插件]可以看到插件已经正常加载。
如果复制“Debug”版本插件DLL,QT designer装载你的插件DLL会失败! 
    更方便的方法是,打开插件project
    右键单击项目名称,调出properties对话框(要在Release模式下面)
    [Configuration Properties]->[BuildEvents]->[Post Build Event]修改
    [Command Line]属性
echo on
copy  "$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName).dll"  "C:\Qt\5.4\msvc2010_opengl\plugins\designer"
echo off
    [Description]属性
Copy plugin dll to Qt5 plugin directory...


备注:
  [a]自定义Widget一般需要添加属性,如何使用属性参考资料[2]。
  [b]修改插件位置,参考资料[3]。
  [c]调用者要进入插件的断点,需要满足两个条件[c1]插件的project同调用者在同一个solution里[c2]插件源码路径同调用者源码路径在同一级solution路径下。
参考资料
[1]《Custom Widget Plugin Example》
http://doc.qt.io/qt-5/qtdesigner-customwidgetplugin-example.html
[2]《Integrating a Custom Widget into Qt Designer》
如何为自定义widget添加属性示例
http://www.ics.com/blog/integrating-custom-widget-qt-designer
[3]《Qt loads plugins of release version on a debug build - Mac only》
https://forum.qt.io/topic/1268/qt-loads-plugins-of-release-version-on-a-debug-build-mac-only
0 0
原创粉丝点击