QCommandLineParser例子

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    QCoreApplication::setApplicationName("Example");
    QCoreApplication::setApplicationVersion("1.0");

    QCommandLineParser parser;
    parser.setApplicationDescription("Test helper");
    
    //添加帮助信息(-h,--help),这个方法由QCommandLineParser自动处理
    parser.addHelpOption();
    
    //添加(-v,--version)方法,显示应用的版本,这个方法由QCommandLineParser自动处理。
    parser.addVersionOption();

    // 一个bool类型的选项,使用单独参数(-p)
    QCommandLineOption showProgressOption("p", QCoreApplication::translate("main", "Show progress during copy"));
    parser.addOption(showProgressOption);

    // 一个bool类型的选项,使用参数(-f,--force)
    QCommandLineOption forceOption(QStringList() << "f" << "force",
            QCoreApplication::translate("main", "Overwrite existing files."));
    parser.addOption(forceOption);

    // 一个带有参数的选项, 使用参数(-t,--targer-directory)
    QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory",
            QCoreApplication::translate("main", "Copy all source files into <directory>."),
            QCoreApplication::translate("main", "directory"));
    parser.addOption(targetDirectoryOption);

    /* 处理命令行参数。
       除了解析选项(如parse())外,此函数还处理内置选项并处理错误。
       如果调用了addVersionOption,则内置选项为--version,如果调用了addHelpOption,则为--help     --help-all。
       当调用这些选项之一时,或者当发生错误(例如,传递了未知选项)时,当前进程将使用exit()函数停止。
    */
    parser.process(app);

    //获取参数的结果
    bool showProgress = parser.isSet(showProgressOption);
    bool force = parser.isSet(forceOption);
    QString targetDir = parser.value(targetDirectoryOption);
    // ...
}

QCommandLineParser::ParseAsCompactedShortOptions :-abc被解释为-a,-b,-c。是默认的解析模式。

QCommandLineParser::ParseAsLongOptions : -abc被解释为--abc,用于保持兼容性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值