文章目录
背景
- 工程中需要新的界面
- VS中新建Qt的ui文件,然后需要生成对应的.cpp 和 .h 文件
新建Widget 对象
生成对应的三个文件.ui, xxx. cpp, xxx.h
但是此时在QtWidgetsTestClass.h 里面,包含了#include “ui_QtWidgetsTestClass.h”。 会提示找不到该文件。该文件的生成,需要使用到Qt的uic.exe程序
UIC程序生成ui_xxxx.h文件
1.通过配置ui_QtWidgetsTestClass.ui的属性,
2. 编译工程
3. 生成ui_QtWidgetsTestClass.h
4. 将ui_QtWidgetsTestClass.h 添加到工程中
命令行: ui.exe路径 xxx.ui -o ui_xxx.h
说明: UIC xxx.ui
输出: ui_xxx.h;%(Outputs)
附加依赖项: xxx.ui; ui.exe path; %(ApplicationalInputs)
编译出错
找不到moc_xxx , 在之前创建QtWidgetClass时,选择了Q_OBJECT选项,因此,这里需要用到Qt的moc.exe工具,生成moc_xxxx.cpp文件。这里是moc_QtWidgetsTestClass.cpp文件
设置QtWidgetsTestClass.h的属性
- 编译工程,生成moc_QtWidgetsTestClass.cpp文件
- 将该文件拷贝至Debug目录下
- 再次编译工程
在生成的cpp和h文件中添加信号量
在QtWidgetsTestClass.h 中添加信号量时, 会重新生成一下moc_QtWidgetsTestClass.cpp文件,这时候需要清理下工程,再重新编译。否则会识别不到这个信号量而报错。
总结
- 使用VS添加新的UI对象感觉是比较麻烦的,需要3个步骤
- 步骤一: 通过向导生成ui文件, xxx.cpp 和 xxx.h 三个文件
- 步骤二: 通过ui文件生成ui_xxxx.h 头文件
- 步骤三: 通过xxx.h 生成moc_xxx.cpp文件
- 将moc_xxx.cpp文件拷贝到debug目录下 (我的VS工程下的debug目录下保存了大量的moc_xxx.cpp文件, 该工程最早也是从Qt工程转变而来的)
综上,在添加新的ui的时候,从ui到代码这一步还是没有Qt creator方便的。
版权归原作者 wjjontheway 所有, 如有侵权,请联系我们删除。