Eseguire comandi in Qt 6 con QProcess

Mattepuffo's logo
Eseguire comandi in Qt 6 con QProcess

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!


Condividi

Commentami!