2010-01-27 13 views
9

Comment puis-je exécuter des programmes de ligne de commande sous Linux à partir de Qt4? Et bien sûr, je veux obtenir la sortie d'une manière que je peux utiliser. Je l'utiliserais pour un ls | grep, mais c'est bon à savoir pour tout problème futur.Exécuter des commandes Linux à partir de Qt4

+0

Une langue particulière? –

+1

QT implique C++. – hlovdal

+6

Sauf quand vous parlez de l'une de ses liaisons (oui, j'ai vu cela se produire), mais je vais laisser glisser. –

Répondre

23
QProcess p; 
p.start(/* whatever your command is, see the doc for param types */); 
p.waitForFinished(-1); 

QString p_stdout = p.readAllStandardOutput(); 
QString p_stderr = p.readAllStandardError(); 
2

Utilisez QProcess.

+1

Pour certaines tâches, il peut être plus facile (ou plus robuste) de rouler votre propre code - vous mentionnez ls | grep, potentiellement QDir avec un filtre ou un QRegExp pourrait faire ce dont vous avez besoin. Pour le cas général, cependant, QProcess est absolument la meilleure solution. –

+0

C'est une excellente observation. Je pense que je vais essayer cela une autre fois, mais la question dans ce cas-ci était aussi quelque peu orientée pour le cas général des utilisations futures. Merci quand même! – StJimmy

0

Pourquoi ne pas utiliser popen?

+0

Pas vraiment Qt cependant ... – e8johan

+0

e8johan: Vrai ... Je comprends que vous voulez utiliser l'API QT mais j'ai pensé donner cette réponse. :) – t0mm13b

Questions connexes