本文整理汇总了C++中qstringlist::const_iterator::toLatin1方法的典型用法代码示例。如果您正苦于以下问题:C++ const_iterator::toLatin1方法的具体用法?C++ const_iterator::toLatin1怎么用?C++ const_iterator::toLatin1使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qstringlist::const_iterator
的用法示例。
在下文中一共展示了const_iterator::toLatin1方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: init
bool CliParser::init(const QStringList &args) {
argsRaw = args;
QStringList::const_iterator currentArg;
for (currentArg = argsRaw.constBegin(); currentArg != argsRaw.constEnd(); ++currentArg) {
if(currentArg->startsWith("--")) {
// long
QString name;
if(currentArg->contains("=")) {
// option
QStringList tmp = currentArg->mid(2).split("=");
name = tmp.at(0);
QString value;
// this is needed to allow --option=""
if(tmp.at(1).isNull()) value = QString("");
else value = tmp.at(1);
if(!addLongArg(CliParserArg::CliArgOption, name, value)) return false;
}
else {
// switch
name = currentArg->mid(2);
if(!addLongArg(CliParserArg::CliArgSwitch, name)) return false;
}
}
else if(currentArg->startsWith("-")) {
// short
char name;
QStringList::const_iterator nextArg = currentArg+1;
// if next arg is a short/long option/switch the current arg is one too
if(nextArg == argsRaw.constEnd() || nextArg->startsWith("-")) {
// switch
for (int i = 0; i < currentArg->mid(1).toAscii().size(); i++) {
name = currentArg->mid(1).toAscii().at(i);
if(!addShortArg(CliParserArg::CliArgSwitch, name)) return false;
}
}
// if next arg is is no option/switch it's an argument to a shortoption
else {
// option
// short options are not freely mixable with other shortargs
if(currentArg->mid(1).toAscii().size() > 1) {
qWarning() << "Warning: Shortoptions may not be combined with other shortoptions or switches";
return false;
}
QString value;
bool skipNext = false;
if(nextArg != argsRaw.constEnd()) {
value = nextArg->toLocal8Bit();
skipNext = true;
}
else value = currentArg->toLocal8Bit();
name = currentArg->mid(1).toAscii().at(0);
// we took one argument as argument to an option so skip it next time
if(skipNext) currentArg++;
if(!addShortArg(CliParserArg::CliArgOption, name, value)) return false;
}
}
else {
// we don't support plain arguments without -/--
if(currentArg->toLatin1() != argsRaw.at(0)) return false;
}
}
return true;
}