Eseguire comandi in Qt 6 con QProcess
Ho specificato Qt 6 perchè rispetto alle versioni precedenti sono cambiate alcune funzioni.
Sostanzialmente alcune sono state deprecate in favore di altre.
Ho specificato Qt 6 perchè rispetto alle versioni precedenti sono cambiate alcune funzioni.
Sostanzialmente alcune sono state deprecate in favore di altre.
Piccolo snippet di codice per il weekend.
Molto semplicemente, come prendere l'ultimo carattare di una QString.
Le QComboBox sono componenti grafici che corrispondono ai classici menu a tendina.
E' possibile riempire una QComboBox in diversi modi.
Oggi vediamo come riempirla da una QStringList.
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.
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.
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.