在上一篇博文【VS+Qt项目开发】(五)解决方案与项目模块的属性配置中,我介绍了一些基本配置。接下来我介绍一下我在项目中创建使用QT自定义插件的过程。
项目代码已经上传,点击项目源码下载
先看一下我们这个项目的总体结构,已有主项目和静态库项目,我们要生成插件项目并使用。
1.创建插件项目
1.1 创建Qt插件
解决方案右键——>添加——>新建项目——>Qt
我们新建一个名为AnalyzeWidget的Qt插件
选择父类为QWidget
1.2 增加项目的平台属性
新建的项目,属性中【平台】部分可能只有Win32,我们需要新建一个x64的平台,便于后面适应平台
当前只有Win32平台
点击【配置管理器】——>点击AnalyzeWidget的平台,选择【新建】——>点击新建平台,下拉框中选择【x64】——>确定
出现了x64平台,现在选择【所有平台】
1.3 添加输出文件夹
仔细看上面属性页的【输出目录】和【中间目录】,这个路径我们需要修改。按照我们在之前博文【VS+Qt项目开发】(三)解决方案与项目文档架构设计中1.2小节所示,我们需要在当前项目路径下增加Output和Output\TempFile两个文件夹
1.4 修改项目输出路径
【输出目录】:$(SolutionDir)$(ProjectName)\Output\$(Platform)\$(Configuration)\
【中间目录】:$(SolutionDir)$(ProjectName)\Output\TempFile\$(Platform)\$(Configuration)\
1.5 修改项目配置属性
现在我们的项目的【配置类型】是应用程序(.exe),我们要修改其为动态库(.dll),扩展名也改为.dll
【链接器】——>常规——>输出文件——>后缀改为dll
1.6 添加静态库依赖
我们的插件很可能也会使用到我们的静态库中的代码(第三方代码库),如果你的项目不使用可以忽略。
关于静态库的具体创建和使用,参见另一篇博文【VS+Qt项目开发】在VS2015中导入/创建静态库并使用静态库
我们需要在属性中增加静态库中头文件的路径,因为插件只需要在编码期间依赖。
附加包含目录:$(SolutionDir)Common\Common_VS2015\include;(这是我的项目设置的路径)
2.编码插件
总算开始编码了~~
2.1 提供了一个接口描述
为了通知Qt Designer想要提供窗口部件的类型,则需要创建一个QDesignerCustomWidgetInterface的子类,其中描述了部件暴露的各种属性,其大多数是由基类中的纯虚函数提供的,因为只有插件的作者可以提供这方面的信息。
编号 |
函数 |