Projet

Général

Profil

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 !

Redmine Appliance - Powered by TurnKey Linux