QCoreApplication::arguments()¶
Lorsqu'on lance un programme par le biais de la ligne de commande, il est possible de retrouver facilement ces arguments. En effet, la classe QCoreApplication fournit la fonction arguments() qui retourne une QStringList des paramètres (le premier est normalement le nom de l'application). Un simple appel permet de stocker ces arguments quelque soit l'endroit où l'on se trouve.
QStringList parametres = qApp->arguments(); //récupère la liste des paramètres
Il est recommandé de stocker les arguments car cette fonction est réputée lente.
Les chaines récupérées sont de la forme "--exercice=mon_fichier.ini", Il faut donc enlever la première partie du paramètre :
QString fichier=parametres[1].remove("--exercice=", Qt::CaseInsensitive);
Exemple de code¶
Dans la calculette capricieuse, j'utilise cette fonctionnalité pour retrouver le nom du fichier passé en ligne de commande : leterrier-calc-cap --exercice=monfichier.ini
//Chargement de la calculette passée en argument si il y en a et si elle existe ! QStringList parametres = qApp->arguments(); //récupère la liste des paramètres if(parametres.size()>1) { QString fichier=parametres[1].remove("--exercice=", Qt::CaseInsensitive); if(QFile::exists(fichier)) { chargeCalculette(fichier); } }
Rq le code ci-dessus présume que l'argument exercice est bien le deuxième de la liste (paramètre 1) on peut faire beaucoup mieux ! À vous de jouer !