您的当前位置:首页>新闻 > 正文

QT 读写JSON文件 Demo

  • 2023-05-11 05:54:29 来源:QT教程


(资料图片)

不废话 直接上代码

private slots:    void seeCardInfo(QTreeWidgetItem*,int);    void on_lineEdit_fix_code_textChanged(const QString &arg1);    void on_pushButton_clicked();    void dialogMenuSlot(QAction *action);    void on_treeWidget_customContextMenuRequested(const QPoint &pos);private:    void _init(); //override;    QStringList names;    QString JsonPath;    QMenu *fixcard_Menu;    QAction *fixcard_addAction;    QAction *fixcard_delAction;    QAction *fixcard_chageAction;void MainWindow::seeCardInfo(QTreeWidgetItem *item, int a){    ui->lineEdit_fix_code->clear();ui->lineEdit_lru->clear();    ui->lineEdit_fix_time->clear();ui->lineEdit_fix_item->clear();    ui->lineEdit_person_need->clear();ui->lineEdit_tool->clear();    ui->plainTextEdit_supplies->clear();ui->plainTextEdit_notice->clear();    ui->plainTextEdit_fix_standard->clear();ui->plainTextEdit_fix_step->clear();    if(item->text(a).contains(\"json\")){        QFile loadFile(QString(\"./cfg/fault_diagnose_cfg/fix_card/%1/%2\").arg(item->parent()->text(0)).arg(item->text(a)));        JsonPath = QString(\"./cfg/fault_diagnose_cfg/fix_card/%1/%2\").arg(item->parent()->text(0)).arg(item->text(a));        qDebug()<< JsonPath;        if(!loadFile.open(QIODevice::ReadOnly))        {            qDebug() << \"could"t open projects json\";            return;        }        QByteArray allData = loadFile.readAll();        loadFile.close();        QJsonParseError jsonError;        QJsonDocument jsonDoc(QJsonDocument::fromJson(allData, &jsonError));        if(jsonError.error != QJsonParseError::NoError)        {            qDebug() << \"json error!\" << jsonError.errorString();            return;        }        QJsonObject rootObj = jsonDoc.object();        if(rootObj.contains(\"fix_code\")){            QJsonValue value = rootObj.value(\"fix_code\");  // 获取指定 key 对应的 value1            if(value.isString()){                QString fixCode = value.toString();                ui->lineEdit_fix_code->setText(fixCode);            }        }        if(rootObj.contains(\"lru_name\")){            QJsonValue value = rootObj.value(\"lru_name\");  // 获取指定 key 对应的 value2            if(value.isString()){                QString lruName = value.toString();                ui->lineEdit_lru->setText(lruName);            }        }        if(rootObj.contains(\"fix_time\")){            QJsonValue value = rootObj.value(\"fix_time\");  // 获取指定 key 对应的 value3            if(value.isString()){                QString fixTime = value.toString();                ui->lineEdit_fix_time->setText(fixTime);            }        }        if(rootObj.contains(\"fix_name\")){            QJsonValue value = rootObj.value(\"fix_name\");  // 获取指定 key 对应的 value4            if(value.isString()){                QString fixName = value.toString();                ui->lineEdit_fix_item->setText(fixName);            }        }        if(rootObj.contains(\"person_need\")){            QJsonValue value = rootObj.value(\"person_need\");  // 获取指定 key 对应的 value5            if(value.isString()){                QString person = value.toString();                ui->lineEdit_person_need->setText(person);            }        }        if(rootObj.contains(\"tool\")){            QJsonValue value = rootObj.value(\"tool\");  // 获取指定 key 对应的 value6            if(value.isString()){                QString tool = value.toString();                ui->lineEdit_tool->setText(tool);            }        }        if(rootObj.contains(\"supplies\")){            QJsonValue value = rootObj.value(\"supplies\");  // 获取指定 key 对应的 value7            if(value.isString()){                QString supplies = value.toString();                ui->plainTextEdit_supplies->appendPlainText(supplies);            }        }        if(rootObj.contains(\"notice\")){            QJsonValue value = rootObj.value(\"notice\");  // 获取指定 key 对应的 value8            if(value.isString()){                QString notice = value.toString();                ui->plainTextEdit_notice->appendPlainText(notice);            }        }        if(rootObj.contains(\"fix_standard\")){            QJsonValue value = rootObj.value(\"fix_standard\");  // 获取指定 key 对应的 value9            if(value.isString()){                QString fixStandard = value.toString();                ui->plainTextEdit_fix_standard->appendPlainText(fixStandard);            }        }        if(rootObj.contains(\"fix_step\")){            QJsonValue value = rootObj.value(\"fix_step\");  // 获取指定 key 对应的 value10            if(value.isString()){                QString fixStep = value.toString();                ui->plainTextEdit_fix_step->appendPlainText(fixStep);            }        }    }    else{        return;    }}void MainWindow::_init(){    QString path = \"./cfg/fault_diagnose_cfg/fix_card\";    ui->pushButton->hide();    QDir dir(path);    names = dir.entryList(QDir::Dirs);    names.removeOne(\".\");    names.removeOne(\"..\");    for(int i = 0; i < names.size(); i++){        QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget);        item->setText(0, names.at(i));        QString strPath = QString(\"./cfg/fault_diagnose_cfg/fix_card/%1\").arg(names.at(i));        QDir strDir(strPath);        QStringList strNames = strDir.entryList(QDir::Files);        for(int i = 0; i < strNames.size(); i++){            QTreeWidgetItem *item1 = new QTreeWidgetItem(item);            item1->setText(0, strNames.at(i));            item->addChild(item1);        }    }    QObject::connect(ui->treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(seeCardInfo(QTreeWidgetItem*,int)));    ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);    fixcard_Menu = new QMenu(\"Test\",ui->treeWidget);    fixcard_addAction = new QAction(\"新增工卡\",fixcard_Menu);    fixcard_delAction = new QAction(\"删除工卡\",fixcard_Menu);    fixcard_chageAction = new QAction(\"修改工卡\",fixcard_Menu);    fixcard_Menu->addAction(fixcard_addAction);    fixcard_Menu->addAction(fixcard_delAction);    fixcard_Menu->addAction(fixcard_chageAction);    QObject::connect(fixcard_Menu,SIGNAL(triggered(QAction*)),this,SLOT(dialogMenuSlot(QAction*)));}void MainWindow::on_pushButton_clicked(){    QString fix_code = ui->lineEdit_fix_code->text();    QString lru_name =  ui->lineEdit_lru->text();    QString fix_time = ui->lineEdit_fix_time->text();    QString fix_name = ui->lineEdit_fix_item->text();    QString person_need = ui->lineEdit_person_need->text();    QString tool= ui->lineEdit_tool->text();    QString supplies = ui->plainTextEdit_supplies->toPlainText();    QString notice = ui->plainTextEdit_notice->toPlainText();    QString fix_standard = ui->plainTextEdit_fix_standard->toPlainText();    QString fix_step =  ui->plainTextEdit_fix_step->toPlainText();    QFile loadFile(JsonPath);    if(!loadFile.open(QIODevice::ReadWrite))    {        qDebug() << \"could"t open projects json\";        return;    }    QByteArray allData = loadFile.readAll();    QJsonParseError jsonError;    QJsonDocument jsonDoc(QJsonDocument::fromJson(allData, &jsonError));    if(jsonError.error != QJsonParseError::NoError)    {        qDebug() << \"json error!\" << jsonError.errorString();        return;    }    QJsonObject rootObj = jsonDoc.object();    rootObj.insert(\"fix_code\", fix_code);    rootObj.insert(\"lru_name\", lru_name);    rootObj.insert(\"fix_time\", fix_time);    rootObj.insert(\"fix_name\", fix_name);    rootObj.insert(\"person_need\", person_need);    rootObj.insert(\"tool\", tool);    rootObj.insert(\"supplies\", supplies);    rootObj.insert(\"notice\", notice);    rootObj.insert(\"fix_standard\", fix_standard);    rootObj.insert(\"fix_step\", fix_step);    QJsonDocument doc(rootObj);    QByteArray data=doc.toJson();    QFile file(JsonPath);    file.open(QIODevice::WriteOnly);    file.write(data);    file.close();    loadFile.close();    QMessageBox::information(this,\"提示\",\"保存成功!\");}void MainWindow::on_lineEdit_fix_code_textChanged(const QString &arg1){    ui->pushButton->show();   // ui->comboBox->currentText();}void MainWindow::on_treeWidget_customContextMenuRequested(const QPoint &pos){    fixcard_Menu->exec(QCursor::pos());}void MainWindow::dialogMenuSlot(QAction *action){    if(action == fixcard_addAction)    {        qDebug() <<\"1111\"<treeWidget->currentItem()->parent()->text(0)<treeWidget->currentItem()->text(0);    }    else if (action == fixcard_delAction)    {    }    else if (action == fixcard_chageAction)    {    }}

【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】

点击这里:

标签:

推荐阅读

QT 读写JSON文件 Demo

不废话直接上代码privateslots:voidseeCardInfo(QTreeWidgetItem*,int);voidon_lineEdit_fix_code_textChan

全球微头条丨深圳将严查公租房申请者家庭经济状况,房屋、汽车、股票等纳入

今天下午,深圳市住房和建设局发布《深圳市公共租赁住房申请家庭经济状况核对和认定实施细则(征求意见稿)

5月10日基金净值:汇添富品牌驱动六个月持有混合最新净值0.7774,跌0.41%

5月10日,汇添富品牌驱动六个月持有混合最新单位净值为0 7774元,累计净值为0 7774元,较前一交易日下跌0 4

第二宇宙速度是多少_第一宇宙速度是多少|天天新资讯

1、什么叫宇宙速度物体达到11 2千米 秒的运动速度时能摆脱地球引力的束缚。2、在摆脱地球束缚的过程中,在

刘水:房企融资又现凉意,需在供需双向加力-焦点讯息

中新经纬5月10日电题:房企融资又现凉意,需在供需双向加力作者刘水中指研究院企业研究总监4月,我们监测到

猜您喜欢

【版权及免责声明】凡注明"转载来源"的作品,均转载自其它媒体,转载目的在于传递更多的信息,并不代表本网赞同其观点和对其真实性负责。亚洲汽车网倡导尊重与保护知识产权,如发现本站文章存在内容、版权或其它问题,烦请联系。 联系方式:8 86 239 5@qq.com,我们将及时沟通与处理。

交易