我正在寻找how to parse the command line arguments。我发现了这个:
// A boolean option with multiple names (-f, --force)
QCommandLineOption forceOption(QStringList() << "f" << "force",
QCoreApplication::translate("main", "Overwrite existing files."));
parser.addOption(forceOption);
这很好用。但是如何为字符串值添加两个值?例如,foo --source ...
应与foo -s ...
相同。
我试过了:
parser.addPositionalArgument(
QStringList() << "s" << "source",
QCoreApplication::translate("main", "...")
);
但这会引发错误:
error: no matching function for call to
'QCommandLineParser::addPositionalArgument(QStringList&, QString)'
parser.addPositionalArgument(QStringList() << "t" << "title",
QCoreApplication::translate("main", "...."));
可能addPositionalArgument
需要一个字符串而不是一个字符串列表。
但我如何为两个值添加别名?
答案 0 :(得分:1)
你没有使用位置论证。位置参数是需要以特定顺序出现的参数,并且可以具有任何值。它们不是-s
或--source
等引入的参数。
正如您已经发现的那样,您可以使用QCommandLineOption
中的QStringList
对两者进行别名。如果你想要一个参数,只需在构造函数中指定:
QCommandLineOption sourceOption(
QStringList() << "s" << "source",
"Specify the source", // better translate that string
"source", // the name of the following argument
"something" // the default value of the following argument, not required
);
parser.addOption(sourceOption);