Qt 5.2 自定义设计师UI插件 遇到问题记录
2014-03-15 10:25
405 查看
最近有个新项目,需要使用QT IDE 来开发一套程序,所以就开始施行;
由于项目中需要用到条形码生成。为方便直观的布局UI界面(也是方便后面进行打印套打设置),所以想到如果将它做成UI插件,内嵌在Qt creator 设计器中拖动设计,不是一件很爽的事嘛?说干就干,现在Qt 插件生成还是很方便的,直接使用新建设计师界面插件项目就行,生成的DLL和.H文件。根据QT文档说明,将DLL文件分别放在QT安装目录C:\Qt\Qt5.2.1\Tools\QtCreator\bin\plugins\designer
和 C:\Qt\Qt5.2.1\5.2.1\MinGw\bin 2个目录下。欣喜若狂的想见下自定义的插件显示在设计师界面的模样!
打开Qt creator 程序,点mainWindow.ui ,快速下拉toolbox。- -!发现什么都没。还是系统自带的那些插件。。。一开始就懵了,赶紧度娘、谷哥。可惜国内的QT中文资源稀缺,没任何有价值的信息。最后没办法,硬着头皮去QT官网论坛看英文(我只认得程序方面的几个英文)。运气还不错,被我找到了一偏人家也遇到和我一样的尴尬情况,上面也有QT技术回复,最后在交谈的内容中得知,当主程序与DLL不是使用同一编译环境的时候,插件是无法识别。QT
Creator 不是使用minGW编译的。恍然大悟!
继续努力,下载QT FOR MSVC2010 版QT。(假如需要在MSVC2010 IDE下开发,需要下载对应的插件);
最后,安装完for msvc 2010 版QT后,创建设计师界面插件,界面显示成功!0^0 激动~~~
按下F5,提示新错误如下:
好吧!做程序就是这样,一个问题解决,新的问题马上就来,继续埋头研究!有结果会更新!
====================================== 第二个 问题解决及问题描述 =============================================
1,因为自定义引出的是release 版,所以新工程中只能使用release 版编译。(瞬间石化!)
2,新项目目录下需包含DLL对应的.h、.cpp源文件
使用release 按F5 生成成功!
赶紧我无语,官方文档说明设计师自定义插件只能使用发布版,所以自定义GUI只能使用release ,否则插件管理是识别不到新插件的!
但有个疑问就是,官方的插件也是发布版,在我们新项目中怎么可以使用调试模式呢? 瞬间N个???????????????????????????????
有解决的朋友请不吝赐教!感激!!!!
================================= 插件安装成功 完结 ==================================
挣扎了几天,终于解决了!特将原因记录,以后备用!
我的设计师插件是调用了其它的DLL组件,之前一直认为是编译的问题,所以发现是方向搞错!
还好今天测试有结果也成功!倍感欣慰及对自身技术太菜感到无语!
最终我将生成的设计师插件放到C:\Qt\Qt5.2.1\Tools\QtCreator\bin\plugins\designer 目录下,将其它需要调用的外部
组件放到C:\Qt\Qt5.2.1\Tools\QtCreator\bin 这样Qt Creator 默认ide 就能加载插件了!
另外在.pro 文件中加
补充几点:
编译自定义插件需要如下条件,才能正常编译通过:
1,将原自定义插件头文件复制到:QT安装目录 Qt5.2.1\5.2.1\msvc2010_opengl\include
2,将所有用到的链接资源LIB复制到:QT安装目录Qt5.2.1\5.2.1\msvc2010_opengl\lib
3,将所有链接的资源DLL复制到:QT安装目录Qt5.2.1\5.2.1\msvc2010_opengl\bin
4,编译模式选择发布方式
=============================== 任务完成 测试QT CREATOR 3 通过 ============================
琢磨了好几天,头都大了。最后还是看了人家的方法测试了下,居然通过了!
要点:将原工程下的XXX.H XXX.CPP XXX.PRI 文件复制到现有工程下,在现有工程下的.PRO文件末尾加上 include(XXX.PRI)
编译通过!
之前一直提示 ERROR 2109 1181 ....等莫名错误,又没合理的提示信息,浪费了好久!
由于项目中需要用到条形码生成。为方便直观的布局UI界面(也是方便后面进行打印套打设置),所以想到如果将它做成UI插件,内嵌在Qt creator 设计器中拖动设计,不是一件很爽的事嘛?说干就干,现在Qt 插件生成还是很方便的,直接使用新建设计师界面插件项目就行,生成的DLL和.H文件。根据QT文档说明,将DLL文件分别放在QT安装目录C:\Qt\Qt5.2.1\Tools\QtCreator\bin\plugins\designer
和 C:\Qt\Qt5.2.1\5.2.1\MinGw\bin 2个目录下。欣喜若狂的想见下自定义的插件显示在设计师界面的模样!
打开Qt creator 程序,点mainWindow.ui ,快速下拉toolbox。- -!发现什么都没。还是系统自带的那些插件。。。一开始就懵了,赶紧度娘、谷哥。可惜国内的QT中文资源稀缺,没任何有价值的信息。最后没办法,硬着头皮去QT官网论坛看英文(我只认得程序方面的几个英文)。运气还不错,被我找到了一偏人家也遇到和我一样的尴尬情况,上面也有QT技术回复,最后在交谈的内容中得知,当主程序与DLL不是使用同一编译环境的时候,插件是无法识别。QT
Creator 不是使用minGW编译的。恍然大悟!
继续努力,下载QT FOR MSVC2010 版QT。(假如需要在MSVC2010 IDE下开发,需要下载对应的插件);
最后,安装完for msvc 2010 版QT后,创建设计师界面插件,界面显示成功!0^0 激动~~~
按下F5,提示新错误如下:
好吧!做程序就是这样,一个问题解决,新的问题马上就来,继续埋头研究!有结果会更新!
====================================== 第二个 问题解决及问题描述 =============================================
1,因为自定义引出的是release 版,所以新工程中只能使用release 版编译。(瞬间石化!)
2,新项目目录下需包含DLL对应的.h、.cpp源文件
使用release 按F5 生成成功!
赶紧我无语,官方文档说明设计师自定义插件只能使用发布版,所以自定义GUI只能使用release ,否则插件管理是识别不到新插件的!
但有个疑问就是,官方的插件也是发布版,在我们新项目中怎么可以使用调试模式呢? 瞬间N个???????????????????????????????
有解决的朋友请不吝赐教!感激!!!!
================================= 插件安装成功 完结 ==================================
挣扎了几天,终于解决了!特将原因记录,以后备用!
我的设计师插件是调用了其它的DLL组件,之前一直认为是编译的问题,所以发现是方向搞错!
还好今天测试有结果也成功!倍感欣慰及对自身技术太菜感到无语!
最终我将生成的设计师插件放到C:\Qt\Qt5.2.1\Tools\QtCreator\bin\plugins\designer 目录下,将其它需要调用的外部
组件放到C:\Qt\Qt5.2.1\Tools\QtCreator\bin 这样Qt Creator 默认ide 就能加载插件了!
另外在.pro 文件中加
LIBS += -L. -lC:\Qt\Qt5.2.1\5.2.1\msvc2010_opengl\lib\zint
来告诉编译器需加载的插件位置即可编译通过!
补充几点:
编译自定义插件需要如下条件,才能正常编译通过:
1,将原自定义插件头文件复制到:QT安装目录 Qt5.2.1\5.2.1\msvc2010_opengl\include
2,将所有用到的链接资源LIB复制到:QT安装目录Qt5.2.1\5.2.1\msvc2010_opengl\lib
3,将所有链接的资源DLL复制到:QT安装目录Qt5.2.1\5.2.1\msvc2010_opengl\bin
4,编译模式选择发布方式
=============================== 任务完成 测试QT CREATOR 3 通过 ============================
琢磨了好几天,头都大了。最后还是看了人家的方法测试了下,居然通过了!
要点:将原工程下的XXX.H XXX.CPP XXX.PRI 文件复制到现有工程下,在现有工程下的.PRO文件末尾加上 include(XXX.PRI)
编译通过!
之前一直提示 ERROR 2109 1181 ....等莫名错误,又没合理的提示信息,浪费了好久!
相关文章推荐
- Qt5中创建及使用自定义插件遇到的一些问题
- Qt5中创建及使用自定义插件遇到的一些问题
- 问题记录(1):jquery插件jquery-ui-1.8.18.custom.min.js弹框数据丢失
- 学习记录-Qt信号和槽使用遇到的问题记录
- Qt5中创建及使用自定义插件遇到的一些问题
- Qt中安装ROS插件qt57creator-plugin-ros所遇到的问题
- 记录编译GCC 5.2.0时遇到的问题和解决方法,以备日后查询。
- Qt 笔记(记录使用Qt中遇到的一些问题)
- 自定义ListView item包含checkbox实现单选记录自己开发是遇到的问题
- zabbix3.0.2 使用percona的mysql插件的遇到的诡异问题解决记录
- 自定义check_mk监控插件过程中遇到的问题1
- osg和Qt结合,记录一下环境搭建,测试及遇到的问题
- ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证
- 在QT框架下开发MFC主程序的一个插件遇到的问题
- 记录Qt+VS开发过程中遇到的问题
- Qt5开发自定义控件中遇到的问题
- 交叉编译QT4.8.6遇到问题记录
- QT工程在VS2008环境下编译 遇到问题与解决方案的记录
- Android应用插件化开发中自定义View基础插件遇到的问题
- Qt5开发自定义控件中遇到的问题