Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. Como salvo variaveis em um arquivo automaticamente com JSON?

Como salvo variaveis em um arquivo automaticamente com JSON?

Scheduled Pinned Locked Moved Unsolved Portuguese
1 Posts 1 Posters 629 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    MSDiLieto
    wrote on last edited by
    #1

    Boa tarde, estou precisando salvar minhas variaveis do menu q criei em um arquivo. Meu programa e' outro, ja esta praticamente finalizado, mas fiz outro programa simples e rapido pra testar um JSON. So' que, a maneira q eu estou salvando as variaveis editadas, e' com 2 botoes, um salvar e outro "abrir arquivo". Mas eu queria mesmo e' q meu programa fizesse isso sem eu precisar clicar em algum botao, apenas editando um QLabel ou um LineEdit, salvasse automaticamente com JSON. Aqui esta' meu codigo:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QTextStream>
    #include <QFileDialog>
    #include <QFile>
    #include <QStringList>
    #include <QJsonDocument>
    #include <QJsonObject>
    #include <QString>
    #include <QJsonValue>
    #include <QtMath>
    #include <QDebug>
    #include <QMessageBox>
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    QString numeric = "00000";
    int CursorPosition = 0;
    void MainWindow::keyPressEvent(QKeyEvent * event)
    {
        CursorPosition = ui->lineEdit->cursorPosition();
        if(event->key() == Qt::Key_Up || event->key() == Qt::Key_Down){
            // Se estiver no caracter nulo da String ou estiver em um delimitador, então anule a ação
            if(CursorPosition == numeric.count()) return;
            if(numeric.at(CursorPosition) == '.' ) return;
            // Quebrar IP String em segmentos de strings [0] 000 [1] 000 [2] 000 [3] 000
            int numericSplitted = numeric.at(CursorPosition).toLatin1() - '0';
            // Calculando as Posições
            const int sectionPos2 = CursorPosition ;
           // const int characterPos = CursorPosition % 4;
            // Selecionar a sentença e converter para Inteiro
            int numericNumber = (int)numericSplitted;
            // Subtrair ou Somar 10^posição
            if(event->key() == Qt::Key_Up){
                numericNumber += 1;
                if(numericNumber > 9) numericNumber = 9;
            }
            else{
                numericNumber -= 1;
                if(numericNumber < 0) numericNumber = 0;
            }
            // Inserir Nova Sentença de IP
            QString numericSentence;
            numeric.replace(sectionPos2, 1, numericSentence.sprintf("%d", numericNumber));
            // Inserir String no LineEdit e restaurando posição do Cursor
            const int restorePosition2 = CursorPosition;
            ui->lineEdit->setText(numeric);
            ui->lineEdit->setCursorPosition(restorePosition2);
            qDebug() << restorePosition2;
            qDebug() << sectionPos2;
        }
    }
    
    
    void MainWindow::on_salvarArquivo_PushButton_clicked()
    {
        QString json_filter = "JSON (*.json)";
        QString nome_arquivo = QFileDialog::getSaveFileName(this, tr("Salvar Arquivo"), "/",
                                                            tr("Qualquer arquivo (*);;%1").arg(json_filter),
                                                            &json_filter, QFileDialog::DontUseNativeDialog);
    
        if(nome_arquivo.isEmpty()){
    
        } else {
            QString valor5 = ui->lineEdit->text();
    
            QJsonDocument doc;
            QJsonObject obj;
    
            obj["valor5"] = valor5;
    
            doc.setObject(obj);
            QByteArray data_json = doc.toJson();
            QFile output(nome_arquivo);
            if (output.open(QIODevice::WriteOnly | QIODevice::Text)) {
                output.write(data_json);
                output.close();
                QMessageBox::information(this, tr("Mensagem"), tr("Documento salvo com sucesso!"));
            } else {
                QMessageBox::critical(this, tr("Erro"), output.errorString());
            }
        }
    }
    
    
    void MainWindow::on_abrirArquivo_PushButton_clicked()
    {
        QString json_filter = "JSON (*.json)";
        QString nome_arquivo = QFileDialog::getOpenFileName(this, tr("Abrir Arquivo"), "/",
                                                            tr("Qualquer arquivo (*);;%1").arg(json_filter),
                                                            &json_filter, QFileDialog::DontUseNativeDialog);
    
        if(nome_arquivo.isEmpty()){
    
        } else {
            QJsonDocument doc;
            QJsonObject obj;
            QByteArray data_json;
            QFile input(nome_arquivo);
            if (input.open(QIODevice::ReadOnly | QIODevice::Text)) {
                data_json = input.readAll();
                doc = doc.fromJson(data_json);
                obj = doc.object();
    
                QString valor5 = obj["valor5"].toString();
    
                ui->lineEdit->setText(valor5);
    
                QMessageBox::information(this, tr("Mensagem"), tr("Documento lido corretamente!"));
            } else {
                QMessageBox::critical(this, tr("Erro"), input.errorString());
            }
        }
    }
    
    
    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved