Класс QCommandLineParser
Класс QCommandLineParser предоставляет средства для обработки опций командной строки. Подробнее...
| Заголовок: | #include <QCommandLineParser> |
| qmake: | QT += core |
| С тех пор: | Qt 5.2 |
Этот класс был представлен в Qt 5.2.
Типы Public
| Перечисление | OptionsAfterPositionalArgumentsMode { ParseAsOptions, ParseAsPositionalArguments } |
| Перечисление | SingleDashWordOptionMode { ParseAsCompactedShortOptions, ParseAsLongOptions } |
Функции Public
| 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) |
Подробное описание
QCoreApplication предоставляет аргументы командной строки в виде простого списка строк. QCommandLineParser предоставляет возможность определять набор опций, анализировать аргументы командной строки и хранить, какие опции фактически были использованы, а также значения опций.
Любой аргумент, который не является опцией (т.е. не начинается с -), хранится как «позиционный аргумент».
Парсер обрабатывает короткие имена, длинные имена, более одного имени для одной и той же опции и значения опций.
Опции в командной строке распознаются по одному или двум символам -. Опция - (один дефис) — это специальный случай, часто обозначающий стандартный ввод, и не рассматривается как опция. Парсер будет рассматривать все после опции -- (два дефиса) как позиционные аргументы.
Короткие опции — это одиночные буквы. Опция v должна быть указана, передав -v в командной строке. В режиме анализа по умолчанию короткие опции могут быть записаны в компактной форме, например, -abc эквивалентно -a -b -c. Режим парсинга может быть установлен на ParseAsLongOptions, в этом случае -abc будет обработано как длинная опция abc.
Длинные опции состоят из более чем одной буквы и не могут быть объединены вместе. Длинная опция verbose передаётся как --verbose или -verbose.
Передача значений опциям может быть выполнена с использованием оператора присваивания: -v=value --verbose=value, или пробела: -v value --verbose value, то есть следующий аргумент используется в качестве значения (даже если он начинается с -).
Парсер не поддерживает необязательные значения — если опция должна иметь значение, оно должно быть указано. Если такая опция расположена последней и не имеет значения, она будет обработана как не указанная.
Парсер не автоматически поддерживает отмену или отключение длинных опций с помощью формата --disable-option или --no-option. Однако можно явно обработать этот случай, создав опцию с no-option в качестве одного из её имён и явно обработав опцию.
Пример:
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);
// ...
} Если ваш компилятор поддерживает стандарт C++11, три вызова addOption() в приведенном выше примере можно упростить:
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")},
}); Известное ограничение: обработка опций Qt внутри QCoreApplication и подклассов происходит до существования QCommandLineParser, поэтому он не может их учитывать. Это означает, что любое значение опции, которое выглядит как встроенная опция Qt, будет обрабатываться QCoreApplication как встроенная опция Qt. Пример: --profile -reverse приведёт к тому, что QGuiApplication увидит установленную опцию -reverse и удалит её из QCoreApplication::arguments() до того, как QCommandLineParser определит опцию profile и проанализирует командную строку.
Как использовать QCommandLineParser в сложных приложениях
На практике необходимо выполнить дополнительную проверку позиционных аргументов и значений опций. Например, должны проверяться диапазоны чисел.
Тогда желательно ввести функцию для анализа командной строки, которая принимает структуру или класс, принимающий значения опций, возвращая перечисление, представляющее результат. Пример dnslookup из модуля QtNetwork иллюстрирует это:
struct DnsQuery
{
DnsQuery() : type(QDnsLookup::A) {}
QDnsLookup::Type type;
QHostAddress nameServer;
QString name;
};
enum CommandLineParseResult
{
CommandLineOk,
CommandLineError,
CommandLineVersionRequested,
CommandLineHelpRequested
};
CommandLineParseResult parseCommandLine(QCommandLineParser &parser, DnsQuery *query, QString *errorMessage)
{
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())) {
*errorMessage = parser.errorText();
return CommandLineError;
}
if (parser.isSet(versionOption))
return CommandLineVersionRequested;
if (parser.isSet(helpOption))
return CommandLineHelpRequested;
if (parser.isSet(nameServerOption)) {
const QString nameserver = parser.value(nameServerOption);
query->nameServer = QHostAddress(nameserver);
if (query->nameServer.isNull() || query->nameServer.protocol() == QAbstractSocket::UnknownNetworkLayerProtocol) {
*errorMessage = "Bad nameserver address: " + nameserver;
return CommandLineError;
}
}
if (parser.isSet(typeOption)) {
const QString typeParameter = parser.value(typeOption);
const int type = typeFromParameter(typeParameter.toLower());
if (type < 0) {
*errorMessage = "Bad record type: " + typeParameter;
return CommandLineError;
}
query->type = static_cast<QDnsLookup::Type>(type);
}
const QStringList positionalArguments = parser.positionalArguments();
if (positionalArguments.isEmpty()) {
*errorMessage = "Argument 'name' missing.";
return CommandLineError;
}
if (positionalArguments.size() > 1) {
*errorMessage = "Several 'name' arguments specified.";
return CommandLineError;
}
query->name = positionalArguments.first();
return CommandLineOk;
} В основной функции сообщение об ошибке должно выводиться в стандартный поток вывода, если была передана опция справки, а приложение должно возвращать код завершения 0.
Если ошибка была обнаружена, сообщение об ошибке должно быть выведено в стандартный поток ошибок, и приложение должно вернуть код завершения, отличный от 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;
QString errorMessage;
switch (parseCommandLine(parser, &query, &errorMessage)) {
case CommandLineOk:
break;
case CommandLineError:
fputs(qPrintable(errorMessage), stderr);
fputs("\n\n", stderr);
fputs(qPrintable(parser.helpText()), stderr);
return 1;
case CommandLineVersionRequested:
printf("%s %s\n", qPrintable(QCoreApplication::applicationName()),
qPrintable(QCoreApplication::applicationVersion()));
return 0;
case CommandLineHelpRequested:
parser.showHelp();
Q_UNREACHABLE();
} Особый случай, который следует рассмотреть, — это приложения графического интерфейса (GUI) под Windows и мобильными платформами. Такие приложения могут не использовать стандартные каналы вывода или ошибок, так как вывод либо отбрасывается, либо недоступен.
В Windows QCommandLineParser использует диалоговые окна сообщений для отображения информации о применении и ошибок, если окно консоли получить не удается.
Для других платформ рекомендуется отображать тексты справки и сообщения об ошибках с помощью QMessageBox. Для сохранения форматирования текста справки следует использовать форматированный текст с элементами <pre>.
switch (parseCommandLine(parser, &query, &errorMessage)) {
case CommandLineOk:
break;
case CommandLineError:
QMessageBox::warning(0, QGuiApplication::applicationDisplayName(),
"<html><head/><body><h2>" + errorMessage + "</h2><pre>"
+ parser.helpText() + "</pre></body></html>");
return 1;
case CommandLineVersionRequested:
QMessageBox::information(0, QGuiApplication::applicationDisplayName(),
QGuiApplication::applicationDisplayName() + ' '
+ QCoreApplication::applicationVersion());
return 0;
case CommandLineHelpRequested:
QMessageBox::warning(0, QGuiApplication::applicationDisplayName(),
"<html><head/><body><pre>"
+ parser.helpText() + "</pre></body></html>");
return 0;
} Однако это не относится к примеру dnslookup, потому что это консольное приложение.
См. также QCommandLineOption и QCoreApplication.
Документация по типам членов
перечисление QCommandLineParser::OptionsAfterPositionalArgumentsMode
Это перечисление описывает способ интерпретации парсером опций, которые встречаются после позиционных аргументов.
| Константа | Значение | Описание |
|---|---|---|
QCommandLineParser::ParseAsOptions |
0 |
application argument --opt -t интерпретируется как установка опций opt и t, точно так же, как это делал бы application --opt -t argument. Это режим обработки по умолчанию. Для указания того, что --opt и -t являются позиционными аргументами, пользователь может использовать --, как в application argument -- --opt -t. |
QCommandLineParser::ParseAsPositionalArguments |
1 |
application argument --opt интерпретируется как имеющий два позиционных аргумента, argument и --opt. Этот режим полезен для исполняемых файлов, которые нацелены на запуск других исполняемых файлов (например, оболочки, инструменты отладки и т. д.) или которые поддерживают внутренние команды, за которыми следуют опции для команды. argument - имя команды, и все опции, которые встречаются после нее, могут быть собраны и обработаны другим парсером командной строки, возможно, в другом исполняемом файле. |
Это перечисление было добавлено или изменено в Qt 5.6.
См. также setOptionsAfterPositionalArgumentsMode().
перечисление QCommandLineParser::SingleDashWordOptionMode
Это перечисление описывает способ интерпретации парсером опций командной строки, использующих один дефис, за которым следуют несколько букв, как -abc.
| Константа | Значение | Описание |
|---|---|---|
QCommandLineParser::ParseAsCompactedShortOptions |
0 |
-abc интерпретируется как -a -b -c, т. е. как три короткие опции, сжатые в командной строке, если ни одна из опций не принимает значение. Если a принимает значение, то оно интерпретируется как -a bc, т. е. короткая опция a за которой следует значение bc. Это обычно используется в инструментах, которые ведут себя как компиляторы, для обработки таких опций, как -DDEFINE=VALUE или -I/include/path. Это режим обработки по умолчанию. Новым приложениям рекомендуется использовать этот режим. |
QCommandLineParser::ParseAsLongOptions |
1 |
-abc интерпретируется как --abc, т. е. как длинная опция с именем abc. Так всегда обрабатывались аргументы собственных инструментов Qt (uic, rcc...). Этот режим следует использовать для сохранения совместимости в приложениях, которые обрабатывали аргументы таким образом. Есть исключение, если у опции a установлен флаг QCommandLineOption::ShortOptionStyle, в этом случае она все равно интерпретируется как -a bc. |
См. также setSingleDashWordOptionMode().
Документация по функциям-членам
QCommandLineParser::QCommandLineParser()
Создает объект парсера командной строки.
QCommandLineParser::~QCommandLineParser()
Уничтожает объект парсера командной строки.
QCommandLineOption QCommandLineParser::addHelpOption()
Добавляет опцию справки (-h, --help и -? в Windows), а также опцию --help-all для включения опций Qt в вывод.
Эти опции автоматически обрабатываются QCommandLineParser.
Не забудьте использовать setApplicationDescription для задания описания приложения, которое будет отображаться при использовании этой опции.
Пример:
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);
// ...
} Возвращает экземпляр опции, который можно использовать для вызова isSet().
bool QCommandLineParser::addOption(const QCommandLineOption &option)
Добавляет опцию option для поиска во время разбора.
Возвращает true если добавление опции было успешным; в противном случае возвращает false.
Добавление опции завершается неудачей, если опции не присвоено имя или опция имеет имя, которое конфликтует с именем опции, добавленной ранее.
bool QCommandLineParser::addOptions(const QList<QCommandLineOption> &options)
Добавляет опции для поиска при разборе. Опции задаются параметром options.
Возвращает true если добавление всех опций прошло успешно; в противном случае возвращает false.
См. документацию для addOption() для случаев, когда эта функция может завершиться неудачей.
Эта функция была добавлена в Qt 5.4.
void QCommandLineParser::addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString())
Определяет дополнительный аргумент для приложения для использования в тексте справки.
Аргумент name и description появятся в разделе Arguments: справки. Если задано syntax, оно будет добавлено к строке «Использование», в противном случае будет добавлено name.
Пример:
// 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.")); См. также addHelpOption() и helpText().
QCommandLineOption QCommandLineParser::addVersionOption()
Добавляет опцию -v / --version, которая отображает строку версии приложения.
Эта опция автоматически обрабатывается QCommandLineParser.
Вы можете задать фактическую строку версии, используя QCoreApplication::setApplicationVersion().
Возвращает экземпляр опции, который можно использовать для вызова isSet().
QString QCommandLineParser::applicationDescription() const
Возвращает описание приложения, заданное в setApplicationDescription().
См. также setApplicationDescription().
void QCommandLineParser::clearPositionalArguments()
Очищает определения дополнительных аргументов из текста справки.
Это необходимо только в особых случаях инструментов, которые поддерживают несколько команд с различными опциями. После определения фактической команды можно определить опции для этой команды и соответственно изменить текст справки для команды.
Пример:
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
Возвращает переведенный текст ошибки для пользователя. Это следует делать только при возвращении parse() false.
QString QCommandLineParser::helpText() const
Возвращает строку, содержащую полную информацию о справке.
См. также showHelp().
bool QCommandLineParser::isSet(const QString &name) const
Проверяет, была ли опция name передана в приложение.
Возвращает true если опция name была установлена, в противном случае возвращает false.
Предоставленное имя может быть любым длинным или коротким именем любой опции, которая была добавлена с addOption(). Все имена опций рассматриваются как эквивалентные. Если имя не распознается или опция отсутствовала, возвращается false.
Пример:
bool verbose = parser.isSet("verbose"); bool QCommandLineParser::isSet(const QCommandLineOption &option) const
Это перегруженная функция.
Проверяет, была ли опция option передана в приложение.
Возвращает true если опция option была установлена, в противном случае возвращает false.
Это рекомендуемый способ проверки опций без значений.
Пример:
QCoreApplication app(argc, argv);
QCommandLineParser parser;
QCommandLineOption verboseOption("verbose");
parser.addOption(verboseOption);
parser.process(app);
bool verbose = parser.isSet(verboseOption); QStringList QCommandLineParser::optionNames() const
Возвращает список имен опций, которые были найдены.
Это возвращает список всех распознанных имен опций, найденных парсером в порядке их обнаружения. Для всех длинных опций, имеющих вид {--option=value}, часть значения была удалена.
В этом списке имена не включают в себя предшествующие символы дефиса. Имена могут встречаться в списке более одного раза, если они были встречены парсером более одного раза.
Любой элемент в списке может использоваться с value() или с values() для получения соответствующих значений параметров.
bool QCommandLineParser::parse(const QStringList &arguments)
Парсит командную строку arguments.
Большинству программ не нужно вызывать эту функцию, достаточно простого вызова process().
parse() — более низкий уровень, и выполняет только парсинг. Приложение должно позаботиться об обработке ошибок, используя errorText(), если parse() возвращает false. Это может быть полезно, например, для отображения графического сообщения об ошибке в графических программах.
Вызов parse() вместо process() также может быть полезен для временного игнорирования неизвестных параметров, поскольку определения дополнительных параметров могут быть предоставлены позже (в зависимости от одного из аргументов) перед вызовом process().
Не забывайте, что arguments должны начинаться с имени исполняемого файла (он игнорируется).
Возвращает false в случае ошибки парсинга (неизвестный параметр или недостающее значение); в противном случае возвращает true.
См. также process().
QStringList QCommandLineParser::positionalArguments() const
Возвращает список позиционных аргументов.
Это все аргументы, которые не были распознаны как часть параметра.
void QCommandLineParser::process(const QStringList &arguments)
Обрабатывает аргументы командной строки arguments.
В дополнение к парсингу параметров (как в parse()), эта функция также обрабатывает встроенные параметры и ошибки.
Встроенные параметры — --version если был вызван addVersionOption, и --help / --help-all если был вызван addHelpOption.
При вызове одного из этих параметров или при возникновении ошибки (например, был передан неизвестный параметр), текущий процесс завершится с помощью функции exit().
См. также QCoreApplication::arguments() и parse().
void QCommandLineParser::process(const QCoreApplication &app)
Это перегруженная функция.
Командная строка извлекается из экземпляра QCoreApplication app.
void QCommandLineParser::setApplicationDescription(const QString &description)
Устанавливает описание приложения description, отображаемое функцией helpText().
См. также applicationDescription().
void QCommandLineParser::setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode parsingMode)
Устанавливает режим парсинга на parsingMode. Это необходимо сделать перед вызовом process() или parse().
Эта функция была добавлена в Qt 5.6.
void QCommandLineParser::setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)
Устанавливает режим парсинга на singleDashWordOptionMode. Это необходимо сделать перед вызовом process() или parse().
void QCommandLineParser::showHelp(int exitCode = 0)
Отображает информацию о помощи и завершает приложение. Это автоматически срабатывает при параметре --help, но также может использоваться для отображения справки, если пользователь не правильно использует приложение. Код возврата устанавливается в exitCode. Он должен быть установлен в 0, если пользователь запросил помощь, и в любое другое значение в случае ошибки.
См. также helpText().
void QCommandLineParser::showVersion()
Отображает информацию о версии из QCoreApplication::applicationVersion() и завершает приложение. Это автоматически срабатывает при параметре --version, но также может использоваться для отображения версии, не используя process(). Код возврата устанавливается в EXIT_SUCCESS (0).
Эта функция была добавлена в Qt 5.4.
См. также addVersionOption().
QStringList QCommandLineParser::unknownOptionNames() const
Возвращает список неизвестных имён параметров.
Этот список будет включать в себя длинные и короткие имена параметров, которые не были распознаны. Для любых длинных параметров, имеющих вид {--option=value}, часть значения будет удалена, и в список будет добавлено только длинное имя.
Имена в этом списке не включают в себя предшествующие символы дефиса. Имена могут встречаться в списке более одного раза, если они были встречены парсером более одного раза.
См. также optionNames().
QString QCommandLineParser::value(const QString &optionName) const
Возвращает значение параметра, найденное для данного имени параметра optionName, или пустую строку, если не найдено.
Указанное имя может быть любым длинным или коротким именем любого параметра, который был добавлен с помощью addOption(). Все имена параметров обрабатываются как эквивалентные. Если имя не распознано или параметр отсутствовал, возвращается пустая строка.
Для параметров, найденных парсером, возвращается последнее найденное значение для этого параметра. Если параметр не был указан в командной строке, возвращается значение по умолчанию.
Возвращается пустая строка, если параметр не принимает значение.
См. также values(), QCommandLineOption::setDefaultValue() и QCommandLineOption::setDefaultValues().
QString QCommandLineParser::value(const QCommandLineOption &option) const
Это перегруженная функция.
Возвращает значение параметра, найденное для данного option, или пустую строку, если не найдено.
Для параметров, найденных парсером, возвращается последнее найденное значение для этого параметра. Если параметр не был указан в командной строке, возвращается значение по умолчанию.
Возвращается пустая строка, если параметр не принимает значение.
См. также values(), QCommandLineOption::setDefaultValue() и QCommandLineOption::setDefaultValues().
QStringList QCommandLineParser::values(const QString &optionName) const
Возвращает список значений параметров, найденных для данного имени параметра optionName, или пустой список, если не найдено.
Указанное имя может быть любым длинным или коротким именем любого параметра, который был добавлен с помощью addOption(). Все имена параметров обрабатываются как эквивалентные. Если имя не распознано или параметр отсутствовал, возвращается пустой список.
Для параметров, найденных парсером, список будет содержать запись для каждого случая обнаружения параметра парсером. Если параметр не был указан в командной строке, возвращаются значения по умолчанию.
Возвращается пустой список, если параметр не принимает значение.
См. также value(), QCommandLineOption::setDefaultValue() и QCommandLineOption::setDefaultValues().
QStringList QCommandLineParser::values(const QCommandLineOption &option) const
Это перегруженная функция.
Возвращает список значений параметров, найденных для данного option, или пустой список, если не найдено.
Для параметров, найденных парсером, список будет содержать запись для каждого случая обнаружения параметра парсером. Если параметр не был указан в командной строке, возвращаются значения по умолчанию.
Возвращается пустой список, если параметр не принимает значение.
См. также value(), QCommandLineOption::setDefaultValue() и QCommandLineOption::setDefaultValues().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qcommandlineparser.html