当前位置: 代码迷 >> QT开发 >> Qt Creator 与 Designer 配合的有关问题
  详细解决方案

Qt Creator 与 Designer 配合的有关问题

热度:509   发布时间:2016-04-25 03:20:48.0
Qt Creator 与 Designer 配合的问题
刚刚开始学习使用 Qt  和 linux, 做嵌入式开发。经验值为0,有不对的地方请大家指出来,先谢谢

配置情况: ubuntu 12.04 LTS ,Qt Creator 3.1.0  ,Qt-everywhere-opensource-src-4.8.5 编译获得的PC端和 ARM端的lib。
刚刚学会通过插件方式做自定义的控件,可以在 designer 中看到并使用,但在creator 中看不到。

目前只能通过designer做ui文件,导入creator中的项目来配合使用做界面。

目前遇到问题如下:
如果现在creator 的项目中添加 设计师界面类及ui文件,编译正常。
但在通过designer 中设计界面ui文件,并覆盖 creator 中的文件,则一定编译报错,如下图:


检查发现,经过 designer 产生的ui文件覆盖后,生产的 ui_xxx.h文件有如下问题:


可以看到,ui类名并不一致,总是 ui_Form,而与文件名ui_xxx无关,这就导致了在用 ui_xxx.h进行编译时报错。

解决:
在 designer 中打开由 creator 生成的 ui 文件,进行修改后保存,而不是采用 designer 生成的ui文件覆盖,则ui_xxx.h文件正常。如下图:


是我错误的使用,还是 uic 的一个bug?
当然,我还在尽量尝试在 creator 中加入自定义的插件,但目前还没有成功。 
------解决方案--------------------
一般*.ui文件 ,是由qmake生成的,不要直接在这个文件中修改。
你可以在你的自定义部件中,增加    Ui::CustomWidget *ui 对象,然后通过ui来管理设备你的自定义 控件的内容。

自定义控件插件,需要先建立插件工程,实现相关的自定义控件。
构建生成的自定义插件,并把它复制至qtcreator的plugins下。
然后在QtCreator中的帮助->关于插件->勾中你自定义的控件,在设计界面就可以拖拉你建立的插件至界面中了。
------解决方案--------------------
可以在Designer 中 promote自己定义的控件。也可以用动态库的插件形式将控件添加到Designer中。
在linux下第二种会集成到Qt Creator 自己的designer中。
在windows下需要编译重新用Mingw编译Qt Creator源码。
  相关解决方案