首页 > 代码库 > 3.QT中QCommandLineParser和QCommandLineOption解析命令行参数
3.QT中QCommandLineParser和QCommandLineOption解析命令行参数
1 新建项目
main.cpp |
#include<QCoreApplication> #include<QCommandLineParser> #include<QDebug> #include<stdio.h>
intmain(intargc,char**argv) { QCoreApplicationapp(argc,argv);
app.setApplicationVersion("1.0.0.0"); app.setApplicationName("xxxxtools");
/*QCommandLineParser是提供了一系列命令行参数的类*/ QCommandLineParserparser; //添加help选项(在窗口上有-h,--helpand?),这个选项是由 //QCommandLineParser自动自动处理的 parser.addHelpOption(); //添加-v/--version选项,这个用来显示应用程序的版本信息 //这个同样是由QCommandLineParser自动处理,同样可以通过 //QCoreApplication::setApplicationVersion()来添加版本信息 parser.addVersionOption();
//通过QCommandLineOption类定义可能的命令行选项 QCommandLineOptionp(QStringList()<<"p"<<"package","setpackagenameofAndroid","com.itcast.hello"); parser.addOption(p); QCommandLineOptionl(QStringList()<<"l"<<"language","setcodelanguagec++orlua","c++"); parser.addOption(l);
//通过app.arguments()返回一系列的命令行参数 //parser.parse(app.arguments()); parser.process(app);
//通过parser来解析一系列命令行参数 QStringstrValue=parser.value("p"); //qCritical()<<"pis"<<strValue; //打印出解析出来的命令行参数 printf("pis%s\n",strValue.toUtf8().data()); //表示的是language strValue=parser.value("l"); qDebug()<<parser.positionalArguments();
return0; //returnapp.exec(); } |
运行项目:进入项目所在目录E:\QT\build-T26Command-Desktop_Qt_5_3_MinGW_32bit-Debug\debug,输入T26Command.exe -l cpp -p cn.com.toto 弹出如下提示错误: 解决办法是进入:C:\Qt\Qt5.3.1\5.3\mingw482_32\bin拷贝上面需要的dll到E:\QT\build-T26Command-Desktop_Qt_5_3_MinGW_32bit-Debug\debug目录中!
再次运行,依次发现需要如下dll文件 libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll icuin52.dll icuuc52.dll icudt52.dll 最终结果: |
3.QT中QCommandLineParser和QCommandLineOption解析命令行参数