将数据结构链接到qt树节点

时间:2019-04-10 09:52:58

标签: qt opengl

我正在编写一个QT GUI Opengl应用程序,在该应用程序中,我将横穿树形结构并渲染对象。

这是我的类的虚拟结构,它将保存要绘制的图元的数据。

每当用户单击按钮创建形状时,我都会在树视图中添加一个新条目,并希望将其链接到具有用于绘制图元的数据的对象。

class Container
{
   private:
     Geometry geom;
     unsigned int texture;
     float x;
     float  y;
     float z;
   public :
    // constructor here

    float getx();
    float gety();
    float getz();
 }

每当用户创建新对象时,都应将新条目添加到树视图中并链接到Container对象。

当我横穿树视图时,每个节点都应返回附加到其上的Container对象。

道歉,因为我不知道如何继续,所以不发布任何代码。

我正在寻找有关如何进行的建议或起点。

1 个答案:

答案 0 :(得分:1)

我建议您从simple tree model example开始, 您可以将其用作解决方案的参考。

TreeItem类中: 使用Container作为data

示例:

class TreeItem
{
public:
    explicit TreeItem(const QList<Container> &data, TreeItem *parentItem = 0);
    ~TreeItem();

    void appendChild(TreeItem *child);

    TreeItem *child(int row);
    int childCount() const;
    int columnCount() const;
    Container data(int column) const;
    int row() const;
    TreeItem *parentItem();

private:
    QList<TreeItem*> m_childItems;
    QList<Container> m_itemData; // The tree item holds the container as the data set.
    TreeItem *m_parentItem;
};

您可以在这里使用它,只需将示例与自定义数据模型一起使用即可。