Qt OpenGL数据同步/模型/视图实现

Qt OpenGL数据同步/模型/视图实现,qt,opengl,qt-creator,model-view,qt5.5,Qt,Opengl,Qt Creator,Model View,Qt5.5,我正在尝试用Qt5.5和OpenGL开发一个应用程序。应用程序的基本工作是加载简单对象,修改它们在场景中的位置,并将它们与其他属性(材质、名称、父/子关系等)一起保存 一周来我唯一在苦苦挣扎的事情是,我真的不知道该如何处理数据同步的问题。比如说,我有一个SceneGraph类,负责处理所有SceneObject。这些场景图应在SceneView小部件中呈现,该小部件可用于通过转换修改其对象。现在我该如何告诉每个场景视图一个物体改变了它的位置 我考虑了一会儿模型/视图体系结构,但我不确定这个实现应

我正在尝试用Qt5.5和OpenGL开发一个应用程序。应用程序的基本工作是加载简单对象,修改它们在场景中的位置,并将它们与其他属性(材质、名称、父/子关系等)一起保存

一周来我唯一在苦苦挣扎的事情是,我真的不知道该如何处理数据同步的问题。比如说,我有一个SceneGraph类,负责处理所有SceneObject。这些场景图应在SceneView小部件中呈现,该小部件可用于通过转换修改其对象。现在我该如何告诉每个场景视图一个物体改变了它的位置

我考虑了一会儿模型/视图体系结构,但我不确定这个实现应该是什么样子

在不同的窗口/小部件中处理这样的对象,但仍然只有一条数据的最佳方法是什么

  • 场景对象:

    • 保存网格信息(垂直、UV等)
    • 具有名称(QString)
    • 有材料
    • 具有存储位置、旋转和缩放信息的变换 (重要提示:这些数据类型应在所有视图中同步)
  • 场景图:

    • 包含不同的SceneObject并传递给SceneView
  • 场景视图:

    • QWidget负责在任何QWindow中正确绘制场景
    • 它有自己的相机可以移动
    • 处理用户输入并允许转换场景对象

您可以使用信号和插槽观察场景对象的位置更新,并在SceneView中处理它们