QT UI 基础(二)编译原理及文件结构
admin
2023-08-03 21:20:10
0

uic读取由QtDesigner生成的XML格式的用户界面定义文件(.ui文件),然后生成其对应的C++头文件。

      若界面文件为ZZZ.ui,则对应生成的头文件为ui_ZZZ.h。默认情况下:

      ①基于QMainWindow的程序,会生成一个叫ui_mainwindow.h的头文件

      ②基于QDialog的程序,会生成一个叫ui_dialog.h的头文件

      ③基于QWidget的程序,会生成一个叫ui_widget.h的头文件

      由Qt Creator自动完成的工作有如下:

       (1)在生成的头文件中,首先会定义一个叫Ui_XXX的类,其中XXX是主窗口的objectName。

      比如我将主窗口的objectName设为masikkk,则头文件中会定义类Ui_masikkk

      此类中有所有控件的声明,以及setupUi(QMainWindow */QDialog */QWidget *)函数的定义。

      在setupUi()函数中,会定义控件的所有属性和行为。

      最后,会定义一个名为Ui的命名空间,里面声明一个类masikkk,此类继承自Ui_masikkk :

              namespace Ui {

                     class masikkk : public Ui_masikkk{};

              }

       (2)在主窗口的头文件中,会声明命名空间Ui :

              namespaceUi{

              classmasikkk;

              }

      并且在类的定义中声明一个私有的Ui::masikkk类的指针 * ui:

              Ui::masikkk * ui;

      在构造函数实现时,会在参数列表中新生成一个Ui::masikkk类的对象赋给指针ui:

              ui(new Ui::masikkk)

      并在函数体内调用setupUi()函数,用主窗口的指针(this指针)作参数:

              ui -> setupUi(this);

      这样就实现了为程序加载界面。

      注意:如果你在Qt Designer中更改了主窗口的objectName,则ui文件生成的头文件中也会相应自动修改,

               但在主窗口的头文件和实现文件中,不会自动将类名修改为新的objectName,需要手动修改的地方有三个,

               在上文中我已分别用下划线标出了,只需将这三个地方修改为主窗口的新的objectName就行了


相关内容

热门资讯

德国miji电饭煲触摸开关没反... 由于两种原因造成,第一是这种电饭锅都为微电脑电饭锅,如果在启动过程之中出现错误,有可能导致接触开关没...
华帝热水器触摸屏失灵修复小技巧 需要更换控制面板。找到一样的配件,拆下四周的固定螺丝然后打开前面板,拆下控制面板模块,把新的插上去,...
第七期苏州大讲堂举行 7月11日,第七期苏州大讲堂举行。英国皇家工程院院士、香港理工大学讲席教授林建国,围绕“前沿新材料赋...
谁知道红日燃气灶好不好 最佳回答 你好,很高兴为您解答!我可以很明确的告诉您红日燃气灶的质量非常好,只要你买到的是正宗的红日...
红日燃气灶怎么样大佬告诉一下 最佳回答 你好,这位网友,红日燃气灶不是一线大品牌哦,但是它的价格还是蛮便宜的,性价比也是比较高的,...
红日红外线燃气灶好不好 最佳回答 你好,很高兴为您解答!就我个人觉得,中式厨具不适宜用红外线灶具,红外线灶具的核心是红外线炉...
美军第四轮空袭打击范围发生变化... 美军一周内密集发动四轮打击,多轮打击的范围及目标区域有何异同之处?美方接下来可能还会有哪些进一步的军...
原创 彻... #小米回应网传澎程价格 #,近期全网刷屏的小米澎程 N90 低价预言彻底翻车,无数米粉期待的 20 ...
每经热评丨当“韦神”不再靠馒头... 每经评论员 付克友 7月8日,2025年度国家科学技术奖揭晓。北京大学数学科学学院教授章志飞与长聘副...
中国电信试验AI传输卫星视频新... IT之家 7 月 13 日消息,中国电信研究院今日宣布,中国电信(研究院、上海公司和中电信应急公司)...