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.
Qui sotto vediamo un esempio di di QProcess nella versione più aggiornata:
#include <QCoreApplication>
#include <QProcess>
#include <QTextStream>
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
QString cmd = "ls";
QStringList args;
args << "-l" << "-a";
QProcess process;
process.setProgram(cmd);
process.setArguments(args);
process.start();
process.waitForReadyRead();
QString output(process.readAllStandardOutput());
QTextStream(stdout) << output << Qt::endl;
process.kill();
return a.exec();
}
In sostanza dobbiamo settare il comando principale e gli argomenti ina due "fasi" separate:
- setProgram imposta il comando principale e vuole una QString
- setArguments setta i vari argomenti, se ci sono, e vuole una QStringList
Con QTextStream visualiziamo l'output in console.
Enjoy!
c++ qt qprocess setprogram setarguments qstring qstringlist
Commentami!