如何将Qt Designer 产生的*.UI文件转换成QT可以使用的*.H和*.CPP

时间:2022-05-01 10:00:04

如何将Qt Designer 产生的*.UI文件转换成QT可以使用的*.H和*.CPP

把UIC.exe和你要转换的xxx.ui文件拷贝到同一目录。

开始菜单,运行CMD

进入uic.exe和xxx.ui的目录,运行以下命令:

uic xxx.ui -o xxx.h  生成.h文件

uic xxx.ui -i xxx.h -o xxx.cpp  生成.cpp文件

生成头文件没问题,但在生成cpp文件时,给了这么个提示(如图),并且没有生成.cpp文件!

如何将Qt Designer 产生的*.UI文件转换成QT可以使用的*.H和*.CPP

我是在qt designer中设计的ui,项目是在vs2010里创建的..

PS:为什么vs不能自动调用qt的uic编译ui自动生成.h 和.cpp呢?我已经nmake了呀,几个小时搞了等于没搞嘛!

呵呵呵呵.....
同学你对Qt不熟吧.ui 文件是不会生成.cpp文件的.ui文件就会生成一个ui_***.h文件.
有了这个ui_***.h文件就足够了.里面已经包含了所有的布局信息.

要用这个布局文件.你就要新建另一个 ***.h和***.cpp.然后在 ***.h中添加 ui_***.h.
并利用ui_***.h 定义一个变量叫ui.
在***.cpp中.使用 ui->setupUI();这就完成了添加布局信息的过程了.

要注意的是新建的类必须和ui中的基础类一致. 比如ui中的布局基于QDialog 你就不可以新建一个继承于QMainWindow的类来添加ui中的布局信息..
追问
嗯~刚上手
你说Qt会根据ui文件自动生成一个ui_***.h文件,我没有看到啊,难道指的是我自己用uic编译得到的.h文件么?
另外,还有一最大的疑问:
我知道VS的c++编译器和Qt的不同,我想这也就是网上那么多人说装了vs add-in,还要重新configure、nmake Qt安装包,从而使得VS可以编译qt程序,对吧?!那么都这么做了,为什么还要用uic来编译ui生成.h呢,那如果新建的页面多了,或者修改了ui,岂不是要重新编译和改很多代码?
回答
要知道你那个 uic 编译得到的.h文件是不是就是包含布局信息的头文件很容易,你只需要打开它看看里面有没有你刚刚拖拽进Qt Designer 的控件和 setupUi() 这个函数就ok了.

对于 VS 配合 Qt 库的编码应该如何做不好意思我没办法帮你解答, 我用的是 Qt Designer + Qt Creator. Qt Creator 会自己管理uic 每次ui有改变就自动去修改布局文件.h. 但是缺点就是编译速度非常慢..