首页 > 代码库 > 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拷贝上面需要的dllE:\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解析命令行参数