QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系

摘要

我们使用的标准 C++,其设计的对象模型虽然已经提供了非常高效的 RTTI 支持,但是在某些方面还是不够灵活。比如在 GUI 编程方面,既需要高效的运行效率也需要强大的灵活性,诸如删除某窗口时可不想把子窗口用代码一个个去析构。Qt 将这两者的优点完美的结合在了一起,创造出了特有的对象模型(Qt Object Model)。


一,Qt的基本框架

在上一篇中,我们已经完成了Qt的安装和VS的环境配置。QT从入门到入土(一)——Qt5.14.2安装教程和VS2019环境配置 - 唯有自己强大 - 博客园 (cnblogs.com)

在讲解对象树之前,我们先来熟悉一下Qt的基本框架。首先新建一个项目:

QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系

  •  main.cpp分析

打开sources里面的main.cpp,可以看到以下代码:

QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系

注意:

  1. 每个Qt程序有且只能有一个QApplication对象,没有会报错。
  2. Qt里面的头文件和类名是一致的,知道头文件就知道类名,反之亦然
  3. Qt头文件是没有.h的,基本都是以大写的Q开头

根据以上的分析,我们可以得出Qt的程序框架代码:

#include <QApplication>      
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);  
     /*
       在这里写你的代码
     */     
    return a.exec();      
}
  • widget.h和widget.cpp分析

打开Headers里面的widget.h,和sources里面的widget.app,可以看到以下代码:

QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系

 QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系

最上面的MyfirstQt.pro,是管理项目的文件,用来存储项目设置。

后缀为“.pro”的文件是项目的管理文件,文件名就是项目的名称,如本项目中的 MyfirstQt.pro。(类似与VS工程的.sln文件)

上一篇:Flutter | 一文搞懂 BuildContext


下一篇:自定义组件(Pluggable Widget)开发入门篇