赞
踩
这几天尝试做一下Qt的自定义控件,中间遇到问题就是自定义控件在QtCreator上无法显示,经过查资料和验证,将问题解决了,简单记录一下。
关键词:Qt库版本 Qt Creator所使用的Qt库版本
Qt使用自定义控件有两种方式:
①通过控件“提升”,这个方法比较推荐,方便快捷。在这里不展开了;
②通过插件的方式,本文记录的就是这样的方式。就是把控件做成插件,并且可以在Qt Creator的界面设计器上直接拖拽调用,很炫酷。为什么要采用这样的方式?其中一个原因看起来很专业和高大上啊。
但我在这过程中遇到问题,做出来的控件在qt库自带的qt designer中可以看到,不过在qt creator中的界面设计器就看不到,为啥?因为版本不一致的问题。
编译器:MSVC 2015社区版
(http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso)
Qt安装包:qt-opensource-windows-x86-msvc2015_64-5.8.0.exe(http://download.qt.io/new_archive/qt/5.8/5.8.0/qt-opensource-windows-x86-msvc2015_64-5.8.0.exe)
从文件名字就可以看qt库的版本:
安装好之后,看看qt creator的版本:
所以版本不一致!
我安装的Qt安装包是64位的库+32位的Qt Creator,因此直接这么编译出来的自定义控件是无法在Qt Creator上显示的。
那怎么办?换Qt Creator的版本。
在地址(http://download.qt.io/archive/qtcreator/4.2/4.2.1/qt-creator-opensource-src-4.2.1.tar.xz)上下载Qt Creator的源码包,然后就用我们之前装好的qt-opensource-windows-x86-msvc2015_64-5.8.0.exe这个环境编译。
编译过程略去,不会太难,记得编译Release版哦。得到新的Qt Creator版本,如下:
好了,现在Qt库和新的Qt Creator版本一致了。(废话,新的Qt Creator就是用之前安装好的qt环境编译出来的,肯定一致啦)。
验证一下,直接用Qt自带的插件例子AnalogClock。(我还是用旧的32位那个Qt Creator。)
记得编译为Release版哦。
编译出来得到.lib,.dll文件
把dll文件拷贝到Qt库的插件目录下。注意:查一些网上资料,说要拷到Qt Creator的bin/plugins/designer,这里我是拷在Qt的安装目录,大家可以试试。
完工,看效果。打开新版Qt Creator,看到了,AnalogClock控件出现在面板上了。
可以拖拽:
好了,Qt自定义控件在Qt Creator上显示的工作完毕。
总结一下,关键的地方是,编译插件的Qt库版本和编译Qt Creator用的Qt库版本要一致,那么就可以显示自定义控件了。
在做这个小测试的过程中,查了挺多网上的资料,不一一列出了,在此表示感谢。另外,如果文中有错漏,烦请大家指出,谢谢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。