QCommandLineParser Class
La classe QCommandLineParser permet de gérer les options de la ligne de commande. Plus d'informations...
| En-tête : | #include <QCommandLineParser> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
Types publics
(since 6.9) enum class | MessageType { Information, Error } |
| enum | OptionsAfterPositionalArgumentsMode { ParseAsOptions, ParseAsPositionalArguments } |
| enum | SingleDashWordOptionMode { ParseAsCompactedShortOptions, ParseAsLongOptions } |
Fonctions publiques
| QCommandLineParser() | |
| ~QCommandLineParser() | |
| QCommandLineOption | addHelpOption() |
| bool | addOption(const QCommandLineOption &option) |
| bool | addOptions(const QList<QCommandLineOption> &options) |
| void | addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString()) |
| QCommandLineOption | addVersionOption() |
| QString | applicationDescription() const |
| void | clearPositionalArguments() |
| QString | errorText() const |
| QString | helpText() const |
| bool | isSet(const QString &name) const |
| bool | isSet(const QCommandLineOption &option) const |
| QStringList | optionNames() const |
| bool | parse(const QStringList &arguments) |
| QStringList | positionalArguments() const |
| void | process(const QStringList &arguments) |
| void | process(const QCoreApplication &app) |
| void | setApplicationDescription(const QString &description) |
| void | setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode parsingMode) |
| void | setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode) |
| void | showHelp(int exitCode = 0) |
| void | showVersion() |
| QStringList | unknownOptionNames() const |
| QString | value(const QString &optionName) const |
| QString | value(const QCommandLineOption &option) const |
| QStringList | values(const QString &optionName) const |
| QStringList | values(const QCommandLineOption &option) const |
Membres publics statiques
(since 6.9) void | showMessageAndExit(QCommandLineParser::MessageType type, const QString &message, int exitCode = 0) |
Description détaillée
QCoreApplication QCommandLineParser fournit les arguments de la ligne de commande sous la forme d'une simple liste de chaînes de caractères. QCommandLineParser permet de définir un ensemble d'options, d'analyser les arguments de la ligne de commande, et de stocker les options qui ont été utilisées, ainsi que les valeurs des options.
Tout argument qui n'est pas une option (c'est-à-dire qui ne commence pas par -) est stocké en tant qu'"argument positionnel".
L'analyseur syntaxique gère les noms courts, les noms longs, plusieurs noms pour la même option et les valeurs des options.
Les options de la ligne de commande sont reconnues comme commençant par un ou deux caractères -, suivis du nom de l'option. L'option - (tiret simple seul) est un cas particulier, qui signifie souvent entrée standard, et n'est pas traitée comme une option. L'analyseur traite tout ce qui suit l'option -- (double tiret) comme des arguments de position.
Les options courtes sont des lettres simples. L'option v serait spécifiée en passant -v sur la ligne de commande. Dans le mode d'analyse par défaut, les options courtes peuvent être écrites sous une forme compacte, par exemple -abc est équivalent à -a -b -c. Le mode d'analyse peut être modifié en ParseAsLongOptions, auquel cas -abc sera analysé comme l'option longue abc.
Les options longues ont plus d'une lettre de long et ne peuvent pas être comprimées ensemble. L'option longue verbose sera transmise sous la forme --verbose ou -verbose.
Le passage de valeurs aux options peut se faire en utilisant l'opérateur d'affectation (-v=value, --verbose=value), ou avec un espace (-v value, --verbose value). Cela fonctionne même si la valeur commence par -.
L'analyseur syntaxique ne prend pas en charge les valeurs optionnelles - si une option est définie de manière à exiger une valeur, celle-ci doit être présente. Si une telle option est placée en dernier et n'a pas de valeur, l'option sera traitée comme si elle n'avait pas été spécifiée.
L'analyseur syntaxique ne prend pas automatiquement en charge l'annulation ou la désactivation des options longues utilisant le format --disable-option ou --no-option. Toutefois, il est possible de traiter ce cas de manière explicite en créant une option dont l'un des noms est no-option et en gérant l'option de manière explicite.
Exemple :
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QCoreApplication::setApplicationName("my-copy-program"); QCoreApplication::setApplicationVersion("1.0"); QCommandLineParser parser; parser.setApplicationDescription("Test helper"); parser.addHelpOption(); parser.addVersionOption(); parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy.")); parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory.")); // A boolean option with a single name (-p) QCommandLineOption showProgressOption("p", QCoreApplication::translate("main", "Show progress during copy")); parser.addOption(showProgressOption); // A boolean option with multiple names (-f, --force) QCommandLineOption forceOption(QStringList() << "f" << "force", QCoreApplication::translate("main", "Overwrite existing files.")); parser.addOption(forceOption); // An option with a value QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory", QCoreApplication::translate("main", "Copy all source files into <directory>."), QCoreApplication::translate("main", "directory")); parser.addOption(targetDirectoryOption); // Process the actual command line arguments given by the user parser.process(app); const QStringList args = parser.positionalArguments(); // source is args.at(0), destination is args.at(1) bool showProgress = parser.isSet(showProgressOption); bool force = parser.isSet(forceOption); QString targetDir = parser.value(targetDirectoryOption); // ... }
Les trois appels à addOption() dans l'exemple ci-dessus peuvent être rendus plus compacts en utilisant addOptions() :
parser.addOptions({ // A boolean option with a single name (-p) {"p", QCoreApplication::translate("main", "Show progress during copy")}, // A boolean option with multiple names (-f, --force) {{"f", "force"}, QCoreApplication::translate("main", "Overwrite existing files.")}, // An option with a value {{"t", "target-directory"}, QCoreApplication::translate("main", "Copy all source files into <directory>."), QCoreApplication::translate("main", "directory")}, });
Limitation connue : l'analyse des options Qt à l'intérieur de QCoreApplication et des sous-classes a lieu avant que QCommandLineParser n'existe, il ne peut donc pas en tenir compte. Cela signifie que toute valeur d'option qui ressemble à une option Qt intégrée sera traitée par QCoreApplication comme une option Qt intégrée. Exemple : --profile -reverse conduira QGuiApplication à voir l'option -reverse définie, et à la supprimer de QCoreApplication::arguments() avant que QCommandLineParser ne définisse l'option profile et n'analyse la ligne de commande.
Comment utiliser QCommandLineParser dans des applications complexes
En pratique, un contrôle d'erreur supplémentaire doit être effectué sur les arguments positionnels et les valeurs des options. Par exemple, les plages de nombres doivent être vérifiées.
Il est alors conseillé d'introduire une fonction pour effectuer l'analyse de la ligne de commande qui prend une structure ou une classe recevant les valeurs d'option et qui renvoie un objet représentant le résultat. L'exemple dnslookup du module QtNetwork l'illustre :
struct DnsQuery { DnsQuery() : type(QDnsLookup::A) {} QDnsLookup::Type type; QHostAddress nameServer; QString name; }; struct CommandLineParseResult { enum class Status { Ok, Error, VersionRequested, HelpRequested }; Status statusCode = Status::Ok; std::optional<QString> errorString = std::nullopt; }; CommandLineParseResult parseCommandLine(QCommandLineParser &parser, DnsQuery *query) { using Status = CommandLineParseResult::Status; parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); const QCommandLineOption nameServerOption("n", "The name server to use.", "nameserver"); parser.addOption(nameServerOption); const QCommandLineOption typeOption("t", "The lookup type.", "type"); parser.addOption(typeOption); parser.addPositionalArgument("name", "The name to look up."); const QCommandLineOption helpOption = parser.addHelpOption(); const QCommandLineOption versionOption = parser.addVersionOption(); if (!parser.parse(QCoreApplication::arguments())) return { Status::Error, parser.errorText() }; if (parser.isSet(versionOption)) return { Status::VersionRequested }; if (parser.isSet(helpOption)) return { Status::HelpRequested }; if (parser.isSet(nameServerOption)) { const QString nameserver = parser.value(nameServerOption); query->nameServer = QHostAddress(nameserver); if (query->nameServer.isNull() || query->nameServer.protocol() == QAbstractSocket::UnknownNetworkLayerProtocol) { return { Status::Error, u"Bad nameserver address: %1"_s.arg(nameserver) }; } } if (parser.isSet(typeOption)) { const QString typeParameter = parser.value(typeOption); if (std::optional<QDnsLookup::Type> type = typeFromParameter(typeParameter)) query->type = *type; else return { Status::Error, u"Bad record type: %1"_s.arg(typeParameter) }; } const QStringList positionalArguments = parser.positionalArguments(); if (positionalArguments.isEmpty()) return { Status::Error, u"Argument 'name' missing."_s }; if (positionalArguments.size() > 1) return { Status::Error, u"Several 'name' arguments specified."_s }; query->name = positionalArguments.first(); return { Status::Ok }; }
Dans la fonction principale, l'aide doit être imprimée sur la sortie standard si l'option d'aide a été passée et l'application doit renvoyer le code de sortie 0.
Si une erreur a été détectée, le message d'erreur doit être imprimé sur la sortie d'erreur standard et l'application doit renvoyer un code de sortie différent de 0.
QCoreApplication::setApplicationVersion(QT_VERSION_STR); QCoreApplication::setApplicationName(QCoreApplication::translate("QDnsLookupExample", "DNS Lookup Example")); QCommandLineParser parser; parser.setApplicationDescription(QCoreApplication::translate("QDnsLookupExample", "An example demonstrating the " "class QDnsLookup.")); DnsQuery query; using Status = CommandLineParseResult::Status; CommandLineParseResult parseResult = parseCommandLine(parser, &query); switch (parseResult.statusCode) { case Status::Ok: break; case Status::Error: std::fputs(qPrintable(parseResult.errorString.value_or(u"Unknown error occurred"_s)), stderr); std::fputs("\n\n", stderr); std::fputs(qPrintable(parser.helpText()), stderr); return 1; case Status::VersionRequested: parser.showVersion(); Q_UNREACHABLE_RETURN(0); case Status::HelpRequested: parser.showHelp(); Q_UNREACHABLE_RETURN(0); }
Un cas particulier à considérer ici est celui des applications GUI sur les plateformes Windows et mobiles. Ces applications ne peuvent pas utiliser les canaux de sortie ou d'erreur standard puisque la sortie est soit rejetée, soit inaccessible.
Sous Windows, QCommandLineParser utilise des boîtes de messages pour afficher les informations d'utilisation et les erreurs si aucune fenêtre de console ne peut être obtenue. Ces boîtes de message peuvent être omises en définissant la variable d'environnement QT_COMMAND_LINE_PARSER_NO_GUI_MESSAGE_BOXES.
Pour les autres plates-formes, il est recommandé d'afficher les textes d'aide et les messages d'erreur à l'aide d'une fenêtre QMessageBox. Pour préserver le formatage du texte d'aide, il convient d'utiliser du texte riche avec des éléments <pre>:
switch (parseResult.statusCode) { case Status::Ok: break; case Status::Error: { QString errorMessage = parseResult.errorString.value_or(u"Unknown error occurred"_qs); QMessageBox::warning(0, QGuiApplication::applicationDisplayName(), "<html><head/><body><h2>" + errorMessage + "</h2><pre>" + parser.helpText() + "</pre></body></html>"); return 1; } case Status::VersionRequested: QMessageBox::information(0, QGuiApplication::applicationDisplayName(), QGuiApplication::applicationDisplayName() + ' ' + QCoreApplication::applicationVersion()); return 0; case Status::HelpRequested: QMessageBox::warning(0, QGuiApplication::applicationDisplayName(), "<html><head/><body><pre>" + parser.helpText() + "</pre></body></html>"); return 0; }
Cependant, cela ne s'applique pas à l'exemple dnslookup, car il s'agit d'une application console.
Voir également QCommandLineOption et QCoreApplication.
Documentation sur les types de membres
[since 6.9] enum class QCommandLineParser::MessageType
L'énumération est utilisée pour spécifier le type de message et la manière dont il sera affiché aux utilisateurs.
| Constante | Valeur | Description |
|---|---|---|
QCommandLineParser::MessageType::Information | 0 | Utilisé pour afficher les messages d'information. Le message sera imprimé sur stdout. |
QCommandLineParser::MessageType::Error | 1 | Utilisée pour afficher les messages d'erreur. Le message sera imprimé sur stderr. |
Cette énumération a été introduite dans Qt 6.9.
Voir également showMessageAndExit().
enum QCommandLineParser::OptionsAfterPositionalArgumentsMode
Cette énumération décrit la manière dont l'analyseur syntaxique interprète les options qui apparaissent après les arguments positionnels.
| Constante | Valeur | Description |
|---|---|---|
QCommandLineParser::ParseAsOptions | 0 | application argument --opt -t est interprété comme l'activation des options opt et t, comme le ferait application --opt -t argument. Il s'agit du mode d'analyse par défaut. Pour spécifier que --opt et -t sont des arguments positionnels, l'utilisateur peut utiliser --, comme dans application argument -- --opt -t. |
QCommandLineParser::ParseAsPositionalArguments | 1 | application argument --opt est interprété comme ayant deux arguments positionnels, argument et --opt. Ce mode est utile pour les exécutables qui visent à lancer d'autres exécutables (par exemple, des wrappers, des outils de débogage, etc.) ou qui prennent en charge des commandes internes suivies d'options pour la commande. argument est le nom de la commande, et toutes les options apparaissant après lui peuvent être collectées et analysées par un autre analyseur de ligne de commande, éventuellement dans un autre exécutable. |
Voir aussi setOptionsAfterPositionalArgumentsMode().
enum QCommandLineParser::SingleDashWordOptionMode
Cette énumération décrit la façon dont l'analyseur interprète les options de ligne de commande qui utilisent un seul tiret suivi de plusieurs lettres, comme -abc.
| Constante | Valeur | Description |
|---|---|---|
QCommandLineParser::ParseAsCompactedShortOptions | 0 | -abc est interprété comme -a -b -c, c'est-à-dire comme trois options courtes qui ont été comprimées sur la ligne de commande, si aucune des options ne prend de valeur. Si a prend une valeur, il est interprété comme -a bc, c'est-à-dire l'option courte a suivie de la valeur bc. Ce mode est généralement utilisé dans les outils qui se comportent comme des compilateurs, afin de gérer des options telles que -DDEFINE=VALUE ou -I/include/path. Il s'agit du mode d'analyse par défaut. Il est recommandé aux nouvelles applications d'utiliser ce mode. |
QCommandLineParser::ParseAsLongOptions | 1 | -abc est interprété comme --abc, c'est-à-dire comme l'option longue nommée abc. C'est ainsi que les outils de Qt (uic, rcc...) ont toujours interprété les arguments. Ce mode doit être utilisé pour préserver la compatibilité avec les applications qui analysaient les arguments de cette manière. Il y a une exception si l'option a a le drapeau QCommandLineOption::ShortOptionStyle, auquel cas elle est toujours interprétée comme -a bc. |
Voir aussi setSingleDashWordOptionMode().
Documentation des fonctions membres
QCommandLineParser::QCommandLineParser()
Construit un objet d'analyseur de ligne de commande.
[noexcept] QCommandLineParser::~QCommandLineParser()
Détruit l'objet analyseur de ligne de commande.
QCommandLineOption QCommandLineParser::addHelpOption()
Ajoute des options d'aide à l'analyseur de la ligne de commande.
Les options spécifiées pour cette ligne de commande sont décrites par -h ou --help. Sous Windows, l'alternative -? est également prise en charge. L'option --help-all permet d'inclure des options génériques de Qt XML, non définies par cette commande, dans la sortie.
Ces options sont gérées automatiquement par QCommandLineParser.
N'oubliez pas d'utiliser setApplicationDescription() pour définir la description de l'application, qui sera affichée lorsque cette option est utilisée.
Exemple :
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QCoreApplication::setApplicationName("my-copy-program"); QCoreApplication::setApplicationVersion("1.0"); QCommandLineParser parser; parser.setApplicationDescription("Test helper"); parser.addHelpOption(); parser.addVersionOption(); parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy.")); parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory.")); // A boolean option with a single name (-p) QCommandLineOption showProgressOption("p", QCoreApplication::translate("main", "Show progress during copy")); parser.addOption(showProgressOption); // A boolean option with multiple names (-f, --force) QCommandLineOption forceOption(QStringList() << "f" << "force", QCoreApplication::translate("main", "Overwrite existing files.")); parser.addOption(forceOption); // An option with a value QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory", QCoreApplication::translate("main", "Copy all source files into <directory>."), QCoreApplication::translate("main", "directory")); parser.addOption(targetDirectoryOption); // Process the actual command line arguments given by the user parser.process(app); const QStringList args = parser.positionalArguments(); // source is args.at(0), destination is args.at(1) bool showProgress = parser.isSet(showProgressOption); bool force = parser.isSet(forceOption); QString targetDir = parser.value(targetDirectoryOption); // ... }
Renvoie l'instance de l'option, qui peut être utilisée pour appeler isSet().
bool QCommandLineParser::addOption(const QCommandLineOption &option)
Ajoute l'option option à rechercher lors de l'analyse.
Renvoie true si l'ajout de l'option a réussi ; sinon, renvoie false.
L'ajout de l'option échoue s'il n'y a pas de nom attaché à l'option, ou si l'option a un nom qui entre en conflit avec un nom d'option ajouté auparavant.
bool QCommandLineParser::addOptions(const QList<QCommandLineOption> &options)
Ajoute les options à rechercher lors de l'analyse. Les options sont spécifiées par le paramètre options.
Renvoie true si l'ajout de toutes les options a réussi ; sinon, renvoie false.
Voir la documentation de addOption() pour savoir quand cette fonction peut échouer.
void QCommandLineParser::addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString())
Définit un argument supplémentaire pour l'application, au profit du texte d'aide.
Les arguments name et description apparaîtront sous la section Arguments: de l'aide. Si syntax est spécifié, il sera ajouté à la ligne d'utilisation, sinon name sera ajouté.
Exemple :
// Usage: image-editor file // // Arguments: // file The file to open. parser.addPositionalArgument("file", QCoreApplication::translate("main", "The file to open.")); // Usage: web-browser [urls...] // // Arguments: // urls URLs to open, optionally. parser.addPositionalArgument("urls", QCoreApplication::translate("main", "URLs to open, optionally."), "[urls...]"); // Usage: cp source destination // // Arguments: // source Source file to copy. // destination Destination directory. parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy.")); parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory."));
Voir aussi addHelpOption() et helpText().
QCommandLineOption QCommandLineParser::addVersionOption()
Ajoute l'option -v / --version, qui affiche la chaîne de version de l'application.
Cette option est gérée automatiquement par QCommandLineParser.
Vous pouvez définir la chaîne de version actuelle en utilisant QCoreApplication::setApplicationVersion().
Renvoie l'instance de l'option, qui peut être utilisée pour appeler isSet().
QString QCommandLineParser::applicationDescription() const
Renvoie la description de l'application définie dans setApplicationDescription().
Voir aussi setApplicationDescription().
void QCommandLineParser::clearPositionalArguments()
Efface les définitions des arguments supplémentaires du texte d'aide.
Cette opération n'est nécessaire que dans le cas particulier des outils qui prennent en charge plusieurs commandes avec des options différentes. Une fois la commande identifiée, les options de cette commande peuvent être définies et le texte d'aide de la commande peut être ajusté en conséquence.
Exemple :
QCoreApplication app(argc, argv); QCommandLineParser parser; parser.addPositionalArgument("command", "The command to execute."); // Call parse() to find out the positional arguments. parser.parse(QCoreApplication::arguments()); const QStringList args = parser.positionalArguments(); const QString command = args.isEmpty() ? QString() : args.first(); if (command == "resize") { parser.clearPositionalArguments(); parser.addPositionalArgument("resize", "Resize the object to a new size.", "resize [resize_options]"); parser.addOption(QCommandLineOption("size", "New size.", "new_size")); parser.process(app); // ... } /* This code results in context-dependent help: $ tool --help Usage: tool command Arguments: command The command to execute. $ tool resize --help Usage: tool resize [resize_options] Options: --size <size> New size. Arguments: resize Resize the object to a new size. */
QString QCommandLineParser::errorText() const
Renvoie un texte d'erreur traduit pour l'utilisateur. Cette fonction ne doit être appelée que lorsque parse() renvoie false.
QString QCommandLineParser::helpText() const
Renvoie une chaîne de caractères contenant les informations d'aide complètes.
Voir aussi showHelp().
bool QCommandLineParser::isSet(const QString &name) const
Vérifie si l'option name a été transmise à l'application.
Retourne true si l'option name a été définie, false sinon.
Le nom fourni peut être n'importe quel nom long ou court d'une option qui a été ajoutée avec addOption(). Tous les noms d'options sont considérés comme équivalents. Si le nom n'est pas reconnu ou si l'option n'était pas présente, false est renvoyé.
Exemple :
bool verbose = parser.isSet("verbose");
bool QCommandLineParser::isSet(const QCommandLineOption &option) const
Vérifie si l'adresse option a été transmise à l'application.
Retourne true si l'option option a été définie, false dans le cas contraire.
C'est la méthode recommandée pour vérifier les options sans valeur.
Exemple :
QCoreApplication app(argc, argv); QCommandLineParser parser; QCommandLineOption verboseOption("verbose"); parser.addOption(verboseOption); parser.process(app); bool verbose = parser.isSet(verboseOption);
Il s'agit d'une fonction surchargée.
QStringList QCommandLineParser::optionNames() const
Renvoie une liste des noms d'options trouvés.
Ceci renvoie une liste de tous les noms d'options reconnus par l'analyseur, dans l'ordre dans lequel ils ont été trouvés. Pour les options longues qui se présentaient sous la forme {-option=valeur}, la partie valeur a été supprimée.
Les noms de cette liste n'incluent pas les tirets qui les précèdent. Les noms peuvent apparaître plus d'une fois dans cette liste s'ils ont été rencontrés plus d'une fois par l'analyseur.
Toute entrée de la liste peut être utilisée avec value() ou avec values() pour obtenir toutes les valeurs d'option pertinentes.
bool QCommandLineParser::parse(const QStringList &arguments)
Analyse la ligne de commande arguments.
La plupart des programmes n'ont pas besoin d'appeler cette fonction, un simple appel à process() suffit.
parse() est plus bas niveau, et ne fait que l'analyse. L'application devra s'occuper de la gestion des erreurs, en utilisant errorText() si parse() renvoie false. Cela peut être utile, par exemple, pour afficher un message d'erreur graphique dans les programmes graphiques.
Appeler parse() au lieu de process() peut également être utile pour ignorer temporairement des options inconnues, car d'autres définitions d'options seront fournies plus tard (en fonction de l'un des arguments), avant d'appeler process().
N'oubliez pas que arguments doit commencer par le nom de l'exécutable (ignoré, cependant).
Retourne false en cas d'erreur d'analyse (option inconnue ou valeur manquante) ; retourne true sinon.
Voir aussi process().
QStringList QCommandLineParser::positionalArguments() const
Renvoie une liste d'arguments positionnels.
Il s'agit de tous les arguments qui n'ont pas été reconnus comme faisant partie d'une option.
void QCommandLineParser::process(const QStringList &arguments)
Traite la ligne de commande arguments.
En plus d'analyser les options (comme parse()), cette fonction gère également les options intégrées et les erreurs.
Les options intégrées sont --version si addVersionOption a été appelé et --help / --help-all si addHelpOption a été appelé.
Lors de l'invocation de l'une de ces options, ou en cas d'erreur (par exemple, une option inconnue a été transmise), le processus en cours s'arrête, à l'aide de la fonction exit().
Voir aussi QCoreApplication::arguments() et parse().
void QCommandLineParser::process(const QCoreApplication &app)
La ligne de commande est obtenue à partir de l'instance QCoreApplication app .
Il s'agit d'une fonction surchargée.
void QCommandLineParser::setApplicationDescription(const QString &description)
Définit l'application description montrée par helpText().
Voir aussi applicationDescription().
void QCommandLineParser::setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode parsingMode)
Définit le mode d'analyse à parsingMode et doit être appelé avant process() ou parse().
void QCommandLineParser::setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)
Définit le mode d'analyse à singleDashWordOptionMode et doit être appelé avant process() ou parse().
void QCommandLineParser::showHelp(int exitCode = 0)
Affiche les informations d'aide et quitte l'application. Cette action est automatiquement déclenchée par l'option -help, mais peut également être utilisée pour afficher l'aide lorsque l'utilisateur n'invoque pas l'application correctement. Le code de sortie est fixé à exitCode. Il doit être fixé à 0 si l'utilisateur a demandé à voir l'aide, et à n'importe quelle autre valeur en cas d'erreur.
Voir également helpText() et showMessageAndExit().
[static, since 6.9] void QCommandLineParser::showMessageAndExit(QCommandLineParser::MessageType type, const QString &message, int exitCode = 0)
Affiche un message message, et quitte l'application avec le message exitCode.
Le message message est généralement imprimé directement à l'adresse stdout ou stderr en fonction de l'adresse type, ou peut être affiché dans une boîte de message sous Windows si nécessaire, avec une icône d'information ou une icône d'erreur en fonction de l'adresse type (définissez la variable d'environnement QT_COMMAND_LINE_PARSER_NO_GUI_MESSAGE_BOXES si vous ne voulez pas de boîte de message).
Il s'agit de la même méthode d'affichage de message que celle utilisée par showHelp, showVersion et les options intégrées (--version si addVersionOption a été appelé et --help / --help-all si addHelpOption a été appelé).
Cette fonction a été introduite dans Qt 6.9.
Voir aussi addVersionOption(), showHelp(), showVersion(), et QCommandLineParser::MessageType.
void QCommandLineParser::showVersion()
Affiche les informations de version provenant de QCoreApplication::applicationVersion(), et quitte l'application. Ceci est automatiquement déclenché par l'option -version, mais peut également être utilisé pour afficher la version lorsque l'on n'utilise pas process(). Le code de sortie est EXIT_SUCCESS (0).
Voir aussi addVersionOption().
QStringList QCommandLineParser::unknownOptionNames() const
Renvoie une liste des noms d'options inconnus.
Cette liste comprend les options à nom long et à nom court qui n'ont pas été reconnues. Pour toutes les options longues qui étaient sous la forme {-option=valeur}, la partie valeur aura été supprimée et seul le nom long aura été ajouté.
Les noms figurant dans cette liste ne comprennent pas les tirets qui les précèdent. Les noms peuvent apparaître plus d'une fois dans cette liste s'ils ont été rencontrés plus d'une fois par l'analyseur.
Voir aussi optionNames().
QString QCommandLineParser::value(const QString &optionName) const
Renvoie la valeur de l'option trouvée pour le nom d'option donné optionName, ou une chaîne vide si elle n'a pas été trouvée.
Le nom fourni peut être n'importe quel nom long ou court d'une option qui a été ajoutée avec addOption(). Tous les noms d'options sont considérés comme équivalents. Si le nom n'est pas reconnu ou si l'option n'est pas présente, une chaîne vide est renvoyée.
Pour les options trouvées par l'analyseur, la dernière valeur trouvée pour cette option est renvoyée. Si l'option n'a pas été spécifiée sur la ligne de commande, la valeur par défaut est renvoyée.
Si l'option ne prend pas de valeur, un avertissement est affiché et une chaîne vide est renvoyée.
Voir aussi values(), QCommandLineOption::setDefaultValue() et QCommandLineOption::setDefaultValues().
QString QCommandLineParser::value(const QCommandLineOption &option) const
Renvoie la valeur de l'option trouvée pour l'adresse option, ou une chaîne vide si elle n'a pas été trouvée.
Pour les options trouvées par l'analyseur, la dernière valeur trouvée pour cette option est renvoyée. Si l'option n'a pas été spécifiée sur la ligne de commande, la valeur par défaut est renvoyée.
Une chaîne vide est renvoyée si l'option ne prend pas de valeur.
Il s'agit d'une fonction surchargée.
Voir aussi values(), QCommandLineOption::setDefaultValue() et QCommandLineOption::setDefaultValues().
QStringList QCommandLineParser::values(const QString &optionName) const
Renvoie une liste des valeurs d'options trouvées pour le nom d'option donné optionName, ou une liste vide si aucune valeur n'a été trouvée.
Le nom fourni peut être n'importe quel nom long ou court d'une option qui a été ajoutée avec addOption(). Tous les noms d'options sont considérés comme équivalents. Si le nom n'est pas reconnu ou si l'option n'est pas présente, une liste vide est renvoyée.
Pour les options trouvées par l'analyseur, la liste contiendra une entrée pour chaque fois que l'option a été rencontrée par l'analyseur. Si l'option n'a pas été spécifiée sur la ligne de commande, les valeurs par défaut sont renvoyées.
Une liste vide est renvoyée si l'option ne prend pas de valeur.
Voir aussi value(), QCommandLineOption::setDefaultValue(), et QCommandLineOption::setDefaultValues().
QStringList QCommandLineParser::values(const QCommandLineOption &option) const
Renvoie une liste des valeurs d'options trouvées pour le site option donné, ou une liste vide si elles n'ont pas été trouvées.
Pour les options trouvées par l'analyseur, la liste contiendra une entrée pour chaque fois que l'option a été rencontrée par l'analyseur. Si l'option n'a pas été spécifiée sur la ligne de commande, les valeurs par défaut sont renvoyées.
Une liste vide est renvoyée si l'option ne prend pas de valeur.
Il s'agit d'une fonction surchargée.
Voir aussi value(), QCommandLineOption::setDefaultValue(), et QCommandLineOption::setDefaultValues().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.