我正在编写一个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对象。
道歉,因为我不知道如何继续,所以不发布任何代码。
我正在寻找有关如何进行的建议或起点。
答案 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;
};
您可以在这里使用它,只需将示例与自定义数据模型一起使用即可。