在Qt主要功能中,QApplication如何了解Mainwindow?

时间:2017-09-15 03:53:18

标签: c++ qt widget

查看几乎每个Qt教程中都能找到的最简单的Qt Widget示例应用程序:

#include "notepad.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Notepad w;
    w.show();

    return a.exec();
}

有一件事困扰着我。这里有两个主要变量awa.exec()启动Qt的主循环,假设与主GUI组件w进行交互。但是,它们都存在于堆栈中,我看不到任何代码以某种方式传递给w a。那么a如何意识到w的存在? w的构造函数是否初始化a可以访问的静态数据结构以检查顶级窗口小部件?

1 个答案:

答案 0 :(得分:0)

Qt预编译代码并在编译之前构建真正的c ++代码,此时QApplication将所有Q对象包装在main.cpp文件中并从中构建其余的代码。