我有这个代码:
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 必需的文件选项。像猴子一样运行它:
app --output-file --no-gui
哇!应用程序以 gui 开头并显示“--no-gui 文件不存在”。干得好人!
UPD3:好的。我想将注册的选项解释为选项,而不是以前选项的值。示例:--no-gui 可以是有效的文件名,但由于这是已注册的选项,解析器不应将其用作值。