[英]QCommandLineOption: How to parse the same parameter multiple times?
I'm trying to parse multiple times the same parameter with QCommandLineParser. 我正在尝试使用QCommandLineParser多次解析同一参数。 The thing is that when I try to parse them, it returns me an empty QStringList, which means that parser encountered some kind of error, even though those are correctly set up.
问题是,当我尝试解析它们时,它返回一个空的QStringList,这意味着解析器遇到了某种错误,即使这些错误设置正确。
I run my program this way : ./dns-benchmark domains.txt -d "208.67.222.222" -d "208.67.220.220"
I've got a positional argument that is correctly returned, but then my -d
arent :/ 我以这种方式运行程序:
./dns-benchmark domains.txt -d "208.67.222.222" -d "208.67.220.220"
我有一个正确返回的位置参数,但是然后我的-d
arent:/
QCoreApplication coreApplication(argc, argv);
QCoreApplication::setApplicationName("dns-benchmark");
QCoreApplication::setApplicationVersion("0.0.1");
QCommandLineParser parser;
parser.setApplicationDescription("Benchmarks a bunch of different DNS servers.");
parser.addHelpOption();
parser.addVersionOption();
parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file containing the domains to resolve."));
QCommandLineOption supplementaryDnsOption(QStringList() << "d" << "dns", "Supplementary DNS to benchmark.", "IPv4 or IPv6 address");
parser.addOption(supplementaryDnsOption);
parser.process(coreApplication);
const QStringList args = parser.positionalArguments();
QString domainsToResolveFilePath = args.at(0);
QLinkedList<QHostAddress> dnsList;
if (parser.isSet(supplementaryDnsOption)) {
const QStringList supplementaryDns = parser.values(supplementaryDnsOption);
for (qint8 i = 0; i < supplementaryDns.size() -1; i++) {
dnsList.append(QHostAddress(supplementaryDns.at(i)));
}
}
but then my const QStringList supplementaryDns
is totally empty :/ 但是我的
const QStringList supplementaryDns
完全是空的:/
Try QCommandLineParser::values
: 试试
QCommandLineParser::values
:
#include <QCoreApplication>
#include <QCommandLineParser>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QCommandLineParser parser;
QCommandLineOption someOption(QStringList() << "p" << "param"
, "some param", "blabla");
parser.addOption(someOption);
parser.process(app);
qDebug() << parser.values(someOption);
return app.exec();
}
This is how it launchs with that param: 它是通过该参数启动的:
Is that what you wanted? 那是你想要的吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.