qstring

Mattepuffo's logo
Parsing JSON in Qt

Parsing JSON in Qt

Qt ha già tutti gli strumenti per eseguire il parsing di stringhe JSON.

Partendo da questo articolo, dove abbiamo visto come eseguire un richiesta ad un server remoto, vediamo come eseguire il parsing della risposta.

Se volete vedere com'è strutturato il JSON, potete accedere liberamente all'indirizzo che interroghiamo, che è questo: http://www.hardstyleitalia.com/blog/api/get_posts/?nopaging=true/

A questo punto creiamo una classe apposita che si chiamerà, con molta fantasia, JsonParser.

Mattepuffo's logo
Controllo esistenza file con Qt in C++

Controllo esistenza file con Qt in C++

Oggi vediamo una piccola clase con una funzione per controllare l'esistenza di un file.

Il file lo cercheremo in più directory tanto per complicare un pò le cose.

Cominciamo con il file .h:

#ifndef CONTROLFILE_H
#define CONTROLFILE_H

#include <QFile>
#include <QStringList>

class ControlFile
{
public:
    ControlFile();
    virtual ~ControlFile();
    bool checkFile(QString file);
};

#endif // CONTROLFILE_H

Per i nostri scopi abbiamo importato i moduli QFile, che rappresenta i file, e QStringList che ci serve per costruire una lista di stringhe.

Mattepuffo's logo
Creare file in C++ e QFileDialog

Creare file in C++ e QFileDialog

Con questo articolo prendo due piccioni con una fava; vedremo sia come usare un QFileDialog per decidere dove salvare i file, sia come salvarli fisicamente usando il puro C++.

Dire di cominciare dalla parte grafica Qt.

Come componente grafico di input ho usato una QAction in modo da mettere nel menu File la classica voce Salva.

Poi ho creato una funzione dentro alla MainWindow e collegato le due (per vedere nel dettagli come si fa guardate qua):

connect(ui->actionSave, SIGNAL(triggered()), this, SLOT(saveFile()));

...........

void MainWindow::saveFile()
{
    QString filename = QFileDialog::getSaveFileName(this, tr("Save"), QDir::homePath(), tr("TXT(*.txt);;DOC(*.doc)"));
    char *cFilename = filename.toAscii().data();
    SaveResult save;
    save.saveFile(cFilename, ui->txtResult->toPlainText().toStdString());
}

Qua potete vedere la doc ufficiale relativa alla funzione getSaveFileName().

Il primo parametro indica la finestra parent.