3.QT中QCommandLineParser和QCommandLineOption解析命令行参数




新建项目

main.cpp

#include
<QCoreApplication>

#include
<QCommandLineParser>

#include
<QDebug>

#include
<stdio.h>

 

int
main(int
argc,
char**
argv)

{

   
QCoreApplication
app(argc,
argv);

 

   
app.setApplicationVersion("1.0.0.0");

   
app.setApplicationName("xxxx
tools");

 

   
/*
QCommandLineParser是提供了一系列命令行参数的类*/

   
QCommandLineParser
parser;

   
//添加help选项(在窗口上有-h,--help
and
?),这个选项是由

   
//QCommandLineParser自动自动处理的

   
parser.addHelpOption();

   
//添加
-v/--version选项,这个用来显示应用程序的版本信息

   
//这个同样是由QCommandLineParser自动处理,同样可以通过

   
//QCoreApplication::setApplicationVersion()来添加版本信息

   
parser.addVersionOption();

 

   
//通过QCommandLineOption类定义可能的命令行选项

   
QCommandLineOption
p(QStringList()
<<
"p"
<<
"package",
"set
package
name
of
Android",
"com.itcast.hello");

   
parser.addOption(p);

   
QCommandLineOption
l(QStringList()
<<
"l"
<<
"language",
"set
code
language
c++
or
lua",
"c++");

   
parser.addOption(l);

 

   
//通过app.arguments()返回一系列的命令行参数

   
//parser.parse(app.arguments());

   
parser.process(app);

 

   
//通过parser来解析一系列命令行参数

   
QString
strValue
=
parser.value("p");

   
//qCritical()
<<
"p
is"
<<
strValue;

   
//打印出解析出来的命令行参数

   
printf("p
is
%s\n",strValue.toUtf8().data());

   
//表示的是language

   
strValue
=
parser.value("l");

   
qDebug()
<<
parser.positionalArguments();

 

   
return
0;

   
//
return
app.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

最终结果:

 

时间: 2024-08-30 22:48:41

3.QT中QCommandLineParser和QCommandLineOption解析命令行参数的相关文章

关于如何在NetBeans6.1中向单个文件添加命令行参数问题的解决

这几天在论坛上看到以前有人问,在NetBeans中如和向单个.java 文件提供命 令行参数 以前对NetBeans 也不是很熟悉,现在对NetBeans了解多了,就知道怎么做 了. 首先打开项目的属性,即右键项目选择最底下的项目属性. 然后在生成节点下 选择运行选项,然后在 右边的选项里选择你要调试的主类(即含有main()函数的类),具体看截图: 设置好后运行项目,记住运行的是项目而不是单个文件, NetBeans 运行项目的 时候是根据你提供的 主类来运行的,相当于运行了单个文件.^_^

【原创】memcached 中的命令行参数解析

     本文主要是以 memcached 源码为例,讲解如何在 linux 下解析命令行参数.  安装 memcached 后,查看其可用选项:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [root@Be

Go语言中使用flag包对命令行进行参数解析的方法_Golang

flagflag 是Go 标准库提供的解析命令行参数的包. 使用方式: flag.Type(name, defValue, usage) 其中Type为String, Int, Bool等:并返回一个相应类型的指针. flag.TypeVar(&flagvar, name, defValue, usage) 将flag绑定到一个变量上. 自定义flag只要实现flag.Value接口即可: type Value interface { String() string Set(string) er

Qt之命令行参数

简述 在Qt之进程间通信(QProcess)一节,我们讲解了如何通过QProcess来进行进程间的通信.主要通过启动外部程序,然后通过命令行的方式传递参数. 这里,我们可以通过Qt Creator来设置命令行参数Arguments,来设置需要用到的信息.也可以用来测试其它进程传参功能. 简述 设置参数 解析 更多参考 设置参数 选择:项目 -> 构建和运行 -> 运行,在Arguments输入框中输入需要传递的参数. 为了演示,我传递了一个Json对象:{\"UserName\&qu

如何分析命令行参数

如何分析命令行参数     GNU/Linux的命令行选项有两种类型:短选项和长选项,前者以 '-' 作为前导符,后者以 '--' 作为前导符.     比如有一个命令: $ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt     在GNU/Linux系统,对这种情况的一种合理解释是:     a是短选项,带一个参数vv:     add是长选项,无参数:     b是短选项,无参数:     file是长选项,带一个参数a.txt:

.NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]

较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参数.环境变量和物理文件作为原始配置数据的来源,如果采用物理文件作为配置源,我们可以选择不同的格式(比如XML.JSON和INI等) .如果这些默认支持的配置源形式还不能满足你的需求,我们还可以通过注册自定义ConfigurationSource的方式将其他形式数据作为我们的配置来源. [ 本文已经同

python命令行参数处理

使用argparse包来解析命令行参数: 1 #/usr/bin/python 2 #encoding=utf-8 3 4 import argparse 5 parser = argparse.ArgumentParser() 6 #parser.parse_args() 7 8 #位置参数, echo只是一个占位符而已,也可以定义参数的类型 9 parser.add_argument("arg_01", help="add one command", type=

C/C++中命令行参数的原理

很早以前的dos应用程序中,我们经常会用命令行参数执行应用程序例如: copy c:\1.txt d:\ 在c/c++中,命令行参数的传递是利用main进行形参传递实现的 前面的教程中我们对面都进行了void main()或者是void main(void)的定义,这表示main不返回任何类型,和main不带有任何参数,但在缺剩状态下mian()这样形式下,形式参数一直是存在在栈空间内的只是隐藏了起来. 为了实现命令行参数我们将使用main(int argc,char* argv[])这样的形式

使用ANTLR进行命令行参数解析

关于命令行参数的解析没有特定的规则,目前比较流行的有unix风格和微软风格.其实除了unix风格 的比较一致外,微软自己提供的命令行参数解析就有很多种风格.在.net平台下的main函数中,仅仅把参 数分解为以空格分割的数组,这对需要加开关,并且有的开关有自己的参数的情况是不够的,而且为了解 析这些参数需要学习部分词法分析的知识,这对用处不是很大的命令行参数显得有些"鸡肋",当然用 Antlr来处理命令行参数更显得有些鸡肋,并且是大才小用,因为Antlr的语法规则比较复杂,学习起来有