如何保存树视图模型并重新加载它

时间:2019-09-11 10:10:13

标签: qt qt5

这是我的treeItem的头文件。

class TreeItem
{
public:
    explicit TreeItem( Container *data , TreeItem *parent = 0 );
    ~TreeItem();
    TreeItem *parent();
    void appendChild(TreeItem *child);
    TreeItem& operator = (const TreeItem &item);
    TreeItem *child(int iNumber);
    int childCount() const;
    int childNumber() const;
    Container data() const ;
    Container* GetContainer();
    bool setData(Container* data , QVariant value);
    void setContainer( Container* data);
    bool insertChildren(int position, int count );
    bool removeChildren( int position  , int count );
    void removeChild(int row);
    void removeChild(TreeItem* itm);
    QList<TreeItem*> children();
    std::string getChildName(int row);
    std::string getName();
    int row() const;
    void insertChild(int pos, TreeItem *child);

private:
    QList<TreeItem*> childItems;
    Container* itemData;
    TreeItem* parentItem;
};

enter image description here

容器类数据。

class Container : public QObject
{ 
    private:
    std::string stdstrContainerName;
    std::string stdstrPluginType;
    Geometry* Geom;
    Sum_Material Material;
    Transformation transformation;
    Transformation transformationPrev;
    Sum_Texture_2D texture;
    Sum_Texture_2D texture2;
    Sum_Texture_CubeMap cubeMapTexture;
    float OpacityPercent;
    SumTransformationDecl::TransformationMode mode;
    WavefrontRenderer* wavefrontrenderer;
    bool bDrawBoundingBox;
    float boundingBoxOffset;
    std::vector< SumChannel* > Channels;
    std::vector< std::shared_ptr<Sum_Function> > Functions;
    BlendMode containerBlend;

我想将模型中的所有项目保存到文件中,并且应该能够从文件中重新加载树模型。

我不知道该怎么做。

1)文件格式应该是什么,我可以为此创建自己的格式吗?

2)TreeItem包含一个Container对象作为数据项,但目前我只想保存树结构并将其加载为步骤1。

0 个答案:

没有答案