QTreeView 数据保存为json格式

需求:QTreeView 自定义树结构,将数据转为json并保存成文本

{
    "project": [
        {
            "children": [
                {
                    "children": [
                        {
                            "children": [
                            ],
                            "name": "新建项目111"
                        }
                    ],
                    "name": "新建项目11"
                },
                {
                    "children": [
                        {
                            "children": [
                            ],
                            "name": "新建项目111"
                        }
                    ],
                    "name": "新建项目11"
                }
            ],
            "name": "新建项目1"
        },
        {
            "children": [
                {
                    "children": [
                    ],
                    "name": "新建项目22"
                }
            ],
            "name": "新建项目2"
        },
        {
            "children": [
                {
                    "children": [
                    ],
                    "name": "新建项目33"
                }
            ],
            "name": "新建项目3"
        }
    ]
}
#ifndef TREEVIEWEDIT_H
#define TREEVIEWEDIT_H

#include <QWidget>
#include <QStandardItemModel>
#include <QJsonDocument>
#include <QJsonObject>
#include <QMessageBox>
#include <QJsonArray>
#include <QByteArray>

namespace Ui {
class TreeViewEdit;
}

class TreeViewEdit : public QWidget
{
    Q_OBJECT

public:
    explicit TreeViewEdit(QWidget *parent = nullptr);
    ~TreeViewEdit();

    void getNode();

    void getItem(QStandardItem *item);

    QString exportTreeToJson(QStandardItemModel *model);

    QJsonObject exportTreeNodeToJson(QStandardItem *item);

    void importTreeFromJson(QStandardItemModel *model, const QString &json);

    void createTreeNode(QStandardItemModel *model, const QJsonObject &node, QStandardItem *parentItem);

    void wirteFile(QString json);

    void readFile(QString &json);

private slots:
    void on_pushButton_add_clicked();

    void on_pushButton_sub_clicked();

    void on_pushButton_delete_clicked();

    void on_pushButton_save_clicked();

    void on_pushButton_clicked();

private:
    Ui::TreeViewEdit *ui;

    QStandardItemModel*m_model;

    QStandardItem * m_parentitem;
};

#endif // TREEVIEWEDIT_H

源码例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值