看一个最简单的Qt Widget示例应用程序,你可以从几乎每个Qt教程中找到:
#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
可以访问并检查顶层窗口小部件?