这是我的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;
};
容器类数据。
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。