查看几乎每个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();
}
有一件事困扰着我。这里有两个主要变量a
和w
。 a.exec()
启动Qt的主循环,假设与主GUI组件w
进行交互。但是,它们都存在于堆栈中,我看不到任何代码以某种方式传递给w
a
。那么a
如何意识到w
的存在?
w
的构造函数是否初始化a
可以访问的静态数据结构以检查顶级窗口小部件?
答案 0 :(得分:0)
Qt预编译代码并在编译之前构建真正的c ++代码,此时QApplication将所有Q对象包装在main.cpp文件中并从中构建其余的代码。