

一 。没有使用general form 和 使用 general form 后,file层面和代码层面的不同比较
file层面的不同

代码层面的不同,
在 使用了general form之后,在主界面的构造方法中,使用ui->setupUi(this),就完成了所有UI的处理。
而之前我们的没有使用general form的时候,需要自己通过写代码一步一步的完成。


比较多出来的file 以及 代码层面的不同 后的 疑问:
在没有使用general form时,我们的代码生成是使用了一系列函数生成的,那么是不是 ui->setupUi(this);的内部也是和我们使用一系列函数差不多呢?
验证:
1.我们先来看多出来的mainwindow.ui是个啥?
在QT Creator中双击 mainwindow.ui,看到会跳转到一个可以操作的UI界面

使用 UE 打开 mainwindow.ui,可以看到是一个xml格式的文件

结论:mainwindow.ui是一个xml的文件。该文件中用xml格式记录了当前mainwindow中的组件。QT Creator在打开这个xml的时候,做了事情,将xml文件变成了可视化的UI。如果我们通过可视化UI,给里面的增添改UI,然后QT Creator会将我们的操作变成xml文件。
验证QT Creator 将开发者可视化UI的操作变成xml实验:
之前界面和xml是这样:

我们往界面上通过可视化UI 添加一个 qpushbutton,保存后,可以看到xml文件多了一些东西

2. 那么这个 ui->setupUi(this)是干啥的呢?
我们按照以往的经验,在 ui->setupUi(this) 这一行上,按住ctrl+鼠标左键,看一下这一行代码跳转到哪里?--结果跳出来error,

这个error的意思是:我们找不到ui_mainwindows.h这个文件。或者没有权限打开这个文件。该文件是在这个目录下:
D:\code_qt\build-004qtUIstudy-Desktop_Qt_5_14_2_MinGW_32_bit-Debug\ui_mainwindow.h
那我们在磁盘里面找一下这个文件。发现确实没有这个文件。

我们再来看一下给出的error信息 路径是在
D:\code_qt\build-004qtUIstudy-Desktop_Qt_5_14_2_MinGW_32_bit-Debug\ui_mainwindow.h
这时候就想到了,这个应该是 项目build 之后生成的吧,于是查看了一下该项目的配置,果然是在D:\code_qt\build-004qtUIstudy-Desktop_Qt_5_14_2_MinGW_32_bit-Debug下面,也就是我们需要构建之后,才会生成 ui_mainwindow.h这个文件。

构建此项目

构建完成后,发现就生成了这个目录了。


在QT Creator 中 打开ui_mainwindow.h文件查看,还是ctrl+鼠标左键打开。为什么不用UE直接打开呢?因为在 QT Creator 中打开代码有关联性,方便查看。我们终于看到了熟悉的画面,和我们不使用general form时候的代码。

二 使用general form 后,QT 帮我们到底做了什么 的回答
1.QT Creator 提供了可视化的UI,方便开发者增删改UI,
2.改动的UI,QTCreator 会变成本质上是xml的 xxx.ui文件
3.然后QT 会在build 的过程中,将 xxx.ui文件变成ui_xxx.h文件。而这个 ui_xxx.h 文件并不是.h文件,实际上也含有.cpp的内容。


2473

被折叠的 条评论
为什么被折叠?



