Я думаю продолжать эту тему.
Вопрос такой, вернее не вопрос, а небольшое затруднение
есть абстрактная модель (все стандартно)
class ModelItem;
class BaseModel : public QAbstractItemModel
{
Q_OBJECT
private:
ModelItem* displayRootItem;
ModelItem* rootItem;
protected:
void setDisplayRootItem(ModelItem*);
ModelItem* const getDisplayRootItem() const;
void setRootItem(ModelItem*);
//ModelItem* getRootItem() const;
public:
ModelItem* getRootItem() const;
explicit BaseModel(QObject *parent = 0);
virtual ~BaseModel();
QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const;
QModelIndex parent(const QModelIndex& child) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const;
int columnCount(const QModelIndex & parent) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
};
mpdelItem:
class BaseModel;
class ModelItem : public QObject
{
Q_OBJECT
public:
private:
ModelItem * parentItem;
QList < ModelItem * > childrenList;
public:
ModelItem();
~ModelItem();
public:
virtual QVariant data(int role) const;
virtual bool setData(const QVariant& value, int role);
virtual ModelItem* parent() const;
virtual Qt::ItemFlags flags() const;
virtual void AddChild(ModelItem* n);
virtual void AddChildTo(ModelItem* n, int position);
virtual int IndexOfChild(ModelItem*) const;
virtual int ChildrenCount() const;
virtual ModelItem* ChildAt(int index) const;
void ClearChildrenList();
};
treeViewModel:
class TreeViewModel : public BaseModel
{
Q_OBJECT
public:
explicit TreeViewModel(QObject * parent = 0);
private:
};
treeViewModelItem:
class TreeViewModelItem : public ModelItem
{
public:
enum IconType
{
folderNode,
treeNode,
archiveNode,
fileNode,
folderNodeDisabled,
treeNodeDisabled,
rootNode,
rootNodeDisabled
};
TreeViewModelItem();
QVariant data(int role);
bool setData(const QVariant& value, int role);
void setIcon();
void setText();
//
QString text;
IconType iconType;
};
я например хочу занести данные в модель
читаю xml
вот ридер в другом отдельном классе, не унаследованном ни от кого.
в него подается строка xml
bool StatXmlReader::read(const QString & source, const QString & nameFile)
{
TreeViewModelItem * tItem = new TreeViewModelItem();
BaseModel* bModel = new BaseModel();
ModelItem * rootItem = bModel->getRootItem();
rootItem->AddChild(tItem);
//xmlReader = new QXmlStreamReader(source);
//.....
return true;
}
в тот момент когда я хочу добавить рутовый элемент у меня вылетает.
вопрос, как заносить в эту модель данные?
?