1. 程式人生 > >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

最終結果: