c++ - OpenGL:QApplication的执行流程

标签 c++ qt opengl graphics

我正在尝试跟踪某些 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

所有各种功能似乎很明显,但我找不到任何东西被调用/实例化的地方。我怀疑这是由 QApplication 在幕后完成的。

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

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

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

最佳答案

通常当 OpenGL 与 Qt 一起使用时,GLWidget 类将在 MainWindow 类的构造函数中实例化,这两个类都继承自 Qt 类。您还可以在此处向 MainWindow 添加其他小部件。

关于c++ - OpenGL:QApplication的执行流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28442616/

相关文章:

c++ - 在堆栈类中使用指针?

c++ - 将 OpenCV 原始指针和 lambda 用于直方图的不同结果

c++ - c++/qt 中用于 google-drive 的 API 和工具

c - 使用 openGL 截图并保存为 png

cocoa - 使用 OpenGL 创建 MVC 范例的最佳方法?

c++ - 已经使用 tr1::hash 在此范围内声明了“hash”;

qt - QEventLoop : Cannot be used without QApplication

c++ - 有没有一种简单的方法可以在 QWidget 的子项上触发 hoverenter/hoverleave 事件?

opengl - FreeGLUT编译dll+lib?

c++ - RAII 字符缓冲区