OpenGL:QApplication的执行流程

OpenGL: Execution Flow of QApplication

我正在尝试跟踪某些 C++ OpenGL 起始代码中的执行路径,但主要方法几乎仅此而已:

QApplication app(argc, argv);
MainWindow main_window;
main_window.resize(QSize(width, height));
main_window.show();
return app.exec();

这些是 .h 和 .cpp 文件:

GLShape.h    GLTransformStack.h  main.cpp         Matrix4x4.h
GLState.cpp  GLWidget.cpp        MainWindow.h
GLState.h    GLWidget.h          Matrix3x3.h

似乎很明显所有各种功能是什么,但我找不到任何东西在哪里 called/instantiated。我怀疑这是由 QApplication.

在幕后完成的

QApplication 是否有与这些文件相关的标准执行流程?

特别是,我想创建一个组织为形状树的动画。为此,我试图添加一个 class PivotGroup,它包含所有与旋转点相关联的形状组。每个 PivotGroup 都有 PivotGroup 的 vector children 这样就可以构造一棵树。

代码创建树的最佳位置在哪里?作为一个小部件似乎很有意义,但我无法判断是否正在创建一个或多个小部件。

通常在 Qt 中使用 OpenGL 时,GLWidget class 将在 MainWindow class 的构造函数中实例化,这两者都继承自 Qt class。您还可以在那里向主窗口添加其他小部件。