在学习QT的时候,曾有这样的疑问,我们新建一个项目,比如继承自QWidget,在设计界面的时候,使用ui设计,但是在代码部分只出现XML格式的代码,却没有我们熟悉的.h格式,那这些控件、布局仅仅是通过XML文件来控制的么,而我在自己的源代码.cpp中想要使用Ui设计的控件,必须使用UI::控件名,这是为什么呢
假设我新建了一个工程,设计一些控件,我继承自QWidget,自己的类名为GoToCell,那么ui名就为gotocell.ui,在构建该项目或者执行该项目时,会多出了一个文件夹,名为gotocell-build-destop,在该文件夹下有一个头文件叫ui_gotocell.h,这个就是UI界面对应的头文件,这里定义了我们设计的控件,在你还没有build项目的时候,这个文件是没有的,它是make的时候生成的,qt使用uic工具对xxx.ui文件进行分析,并生成相应的ui_xxx.h文件,如果想要手动生成,方法是用命令行,uic -o ui_gotocell.h gotocell.ui,这个命令行可以直接通过右击项目中的gotocell文件选中中“在此打开命令行”
我们需要进一步了解是怎么利用这个ui_gotocell.h的
打开ui_gotocell.h文件,有如下语句
namespace Ui {
class GoToCell: public Ui_GoToCell {};