Qt 5.2 自定义设计师UI插件 遇到问题记录

来源:互联网 发布:js获取li标签的属性值 编辑:程序博客网 时间:2024/06/05 18:51

最近有个新项目,需要使用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 文件中加 

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 ....等莫名错误,又没合理的提示信息,浪费了好久!

0 0
原创粉丝点击