Доступ к данным из элемента Tree Model - PullRequest
0 голосов
/ 05 мая 2019

enter image description hereenter image description here

Это моя структура табличного представления.

Как я могу просмотреть табличное представление и получить SubChild в качестве элемента TreeItem.

Например -> Group2 $ Child2 $ SubChild.

Эта строка должна возвращать дочернего элемента в виде TreeItem *.

Заголовочный файл для TreeModel.

#pragma once
#include <QAbstractItemModel>
#include <QString>
#include <QMimedata.h>
#include <Qdatastream.h>
#include "Container.h"

class TreeItem;

class TreeModel : public QAbstractItemModel
 {
    Q_OBJECT

 public:
    TreeModel( const QString &header, const Container &data, QObject *parent 
    = 0);
     ~TreeModel();

     QVariant data(const QModelIndex &index, int role) const override;
     QVariant headerData(int section, Qt::Orientation orientation, int role = 
     Qt::DisplayRole) const override;
    bool setData(const QModelIndex &index, const QVariant &value, int role = 
    Qt::EditRole) override;
    bool setHeaderData(int section, Qt::Orientation orientation,
        const QVariant &value, int role = Qt::EditRole)  override;

    QModelIndex index(int row, int column, const QModelIndex &parent) const 
    override;
    QModelIndex parent(const QModelIndex &parent) const override;

    bool insertRows(int position, int rows, const QModelIndex &parent);
//  bool removeRows(int position, int rows, const QModelIndex &parent = 
    QModelIndex()) override;
    Qt::ItemFlags flags(const QModelIndex &index) const override;

    int columnCount(const QModelIndex &parent = QModelIndex()) const 
     override;
    int rowCount(const QModelIndex &parent = QModelIndex()) const override;


    Container GetContainer(const QModelIndex &index);
    void SetContainer(const QModelIndex &index, Container cont);

    ////////////////////// Drag And Drop Actions ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    Qt::DropActions supportedDropActions() const override;
    Qt::DropActions supportedDragActions() const override;
    QStringList mimeTypes() const override;
    QMimeData *mimeData(const QModelIndexList &indexes) const override;
    bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
    void setupModelData(const QStringList &lines, TreeItem *parent);
    void removeItem(TreeItem *item);
    TreeItem *getItem(const QModelIndex &index) const;
    TreeItem *getRoot();


   private:

   TreeItem *rootItem;

 };

Я был бы рад опубликовать любой требуемый код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...