Qt添加自定义控件并在qtDesigner中使用以及链接失败的解决方法

29 篇文章 2 订阅

开发环境:VS2010+Qt4.8.6+Qt_Vs_Add_In

首先用VS新建一个项目,项目类型选择Qt4 Designer Plugin,然后按照普通的Qt项目一样写好代码或者设计Ui文件,随后生成解决方案。该项目和普通Qt应用唯一的区别就是不会生成exe程序,而是生成动态链接库dll和lib。

随后,将生成的dll和lib文件复制到QtDir\plugins\designer下,再打开Qt Designer-帮助-关于插件-刷新,就会看到左侧的Widget Box里的My Plugin一栏会出现你编写的自定义控件,这样就大功告成,你就可以像使用其他Qt控件一样使用Qt Designer拖放你的自定义控件来设计UI了。

注意:编译模式请选择Release模式,因为Debug模式生成dll和lib无法被Qt Designer有效识别,会在关于插件对话框的Failed plugins中找到如下信息:插件“****.dll”使用了不兼容的Qt库,期待的构建键是“Windows msvc release full-config”,得到的却是“Windows msvc debug full-config”。

尽管可以用Qt Designer拖放自定义控件了,但是在编译程序的时候还是会报错,错误出现在链接阶段,报fatal error LNK1120:无法解析的外部命令,可以看到对于自定义控件类的任何函数的定义,链接器都找不到,说明这个dll和lib并不能作为链接用,只能用于designer设计ui文件生成ui对应的界面头文件。因此正确使用自定义控件的方法应该是把编译自定义控件dll项目中的ui_xxx.h,xxx.h,xxx.cpp这三个源码文件都加入到你的项目工程中,一起编译。这样链接成功,程序可以正常运行了。

因此,目前来看,自定义控件的意义在于可以方便地用Qt Designer拖放,加快界面开发的速度。编译仍然需要引入定义这个控件类的源码一起编译。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值