我有这个代码:
parser.addOption(requiredValueOption);
parser.addOption(booleanOption);
if (!parser.parse(app->arguments())) {
qDebug() << parser.errorText();
parser.showHelp(1);
}
当我这样称呼它时:
./app --required-value-option value
它有效。
当我这样称呼它时:
./app --required-value-option
我看到一条错误消息"之后缺少值...",这是意料之中的
但是当我这样称呼它时:
./app --required-value-option --boolean-option
字符串--boolean-option
被解释为--required-value-option
!!!的值这不是我所期望的。这应该会触发错误。
如何使用QCommandLineParser正确解析具有所需值的选项?
UPD:如果您在Qt应用程序中对选项使用一些必需的值 - 您可以对其进行测试。
UPD2:当前行为,例如:--no-gui 布尔选项和 --output-file required file 选项。以猴子身份运行它:
app --output-file --no-gui
哇!应用程序以 gui 开头并显示"--no-gui 文件不存在"。干得好,伙计!
UPD3:好的。我想将注册的选项解释为选项,而不是以前选项的值。示例:--no-gui 可以是有效的文件名,但由于这是注册选项,因此解析器不应将其用作值。
好的,我回答自我问题。
首先,您必须仅添加和分析布尔选项。存储建立的标志(我将其存储为位掩码并稍后检查)。
然后添加其他带有值的选项并再解析一个。
现在,您已经解析了布尔选项和带有值的解析选项。
完成!