/
Zero_Fly
/
JSON_viewer
Обзор
Документация
Войти
/
Zero_Fly
/
JSON_viewer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
result
src/json-viewer/JSON_tree.h
56 строк
2 KB
akulyanin
close to finish JSON_tree
22 янв 2025, 15:04
22 янв 2025, 15:04
04f5434
Код
Авторство
О чём код?
#ifndef JSON_TREE_H #define JSON_TREE_H #include <QAbstractItemModel> #include <QJsonDocument> #include <QJsonObject> #include <QJsonArray> #include <QVariant> #include <QModelIndex> #include <QDebug> class TreeItem { public: explicit TreeItem(const QVariant &data, TreeItem *parent = nullptr); ~TreeItem(); void appendChild(TreeItem *child); TreeItem *child(int row); int childCount() const; int columnCount() const; QVariant data(int column) const; void addData(QString data); int row() const; TreeItem *getParentItem(); private: QList<TreeItem*> childItems; QVariant itemData; TreeItem *parentItem; }; class JsonTreeModel : public QAbstractItemModel { Q_OBJECT public: explicit JsonTreeModel(const QString &jsonString, QObject *parent = nullptr); ~JsonTreeModel(); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; Qt::ItemFlags flags(const QModelIndex &index) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; QModelIndex parent(const QModelIndex &index) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; private: void setupModelData(const QJsonObject &object, TreeItem *parent); void setupModelData(const QJsonArray &array, TreeItem *parent); TreeItem *rootItem; }; #endif // JSON_TREE_H