QCommandLineOption 的默认值

问题描述 投票:0回答:1

我正在使用

QCommandLineParser
,但我不确定如何处理选项的
defaultValue
。这是我到目前为止的片段:

QCommandLineParser parser;
parser.setApplicationDescription("Video Grabber and Streamer");
parser.addOption(QCommandLineOption("streaming.fps", "Frame rate for streaming. Default: 20", "fps", "20"));
parser.process(*QCoreApplication::instance());

据我从doc中了解到:

此外,如果选项需要一个值,则需要设置 valueName。该选项的默认值设置为defaultValue。

我期望如果

--streaming.fps
选项未通过,该选项将出现并设置为
20
。但这并没有发生;如果我通过了就可以了

myapp.exe --streaming.fps 10

parser.optionNames()
包含
streaming.fps
且其值为 10。但是如果我运行:

myapp.exe

然后

parser.optionNames()
为空。

有什么建议吗?

default qt6 qcommandlineparser
1个回答
0
投票

这个问题已经快 10 个月了,但我只是在这个问题上挣扎,所以我回答它。

optionNames()
提供了命令行参数中found的选项名称列表。如果选项未作为命令行参数传入,则这些不包括具有默认值的选项名称。

请注意,您仍然可以使用默认值访问选项,因此在问题中,运行

parser.value("streaming.fps")
时,
20
将为
myapp.exe
,即使
parser.optionNames()
将为空。

© www.soinside.com 2019 - 2024. All rights reserved.