问题标签 [qcommandlineparser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - How to use QCommandLineParser for arguments with multiple params?
I wonder, how can I use multiple- or sub-arguments with QCommandLineParser? For example:
c++ - 将多个解析值传递给 addPositionalArgument 函数
我正在研究如何解析命令行参数。我找到了这个:
这工作正常。但是如何为字符串值添加两个值?例如,foo --source ...
应该与foo -s ...
.
我试过了:
但这会引发错误:
这可能addPositionalArgument
需要一个字符串而不是字符串列表。
但是我怎样才能给两个值加上别名呢?
c++ - 接受完整的命令作为命令行参数
我正在编写一个接受辅助 shell 命令作为其最终参数的实用程序。然后我的实用程序代表用户运行提供的 shell 命令。用户将按如下方式调用它:
我希望 QCommandLineParser 解析初始选项,然后不理会尾部内容(或将其解析为纯值列表)。相反,QCommandLineParser 抱怨用户输入了无效的参数。
例如,如果用户要输入
thenls -l
是我想接受的有效命令,但 Qt 告诉用户这-l
是我的应用程序的无效参数。处理这个问题的最佳方法是什么?
c++ - QCommandLineOption 读取输入文件
我正在编写使用 QCommandLineOption 读取输入文件(在本例中为 jpg 文件)的代码。我试图围绕如何正确添加文件路径和名称来访问数据,但它不起作用。这是代码:
我得到“!面具未设置,必须设置!” 编译时,这意味着字符串 maskFileName 为空。有任何想法吗 ?
c++ - QCommandLineParser:如果处理了内置选项,则暂停执行
我正在开发一个 Qt 5.x 应用程序,其主要功能或多或少类似于(简化):
当我在命令行上调用指定--version
(或--help
)选项的应用程序执行时遇到了一些问题:应用程序输出版本(或帮助),然后有时以分段错误终止......
我认为这是因为当检测到命令行(或)QCommandLineParser
上的内置选项时,只需调用's来终止执行,这会干扰我自己的(基本上一些其他线程已启动,并且可能过早调用原因一些问题)...--version
--help
QApplication
exit()
*** SOME INITIALIZATION STUFF ***
exit()
*** SOME INITIALIZATION STUFF ***
但是,我的问题是:如果在命令行上检测到内置选项,是否可以让 Qt 避免在我的应用程序中走得更远?换句话说,是否有一种方法可以调用来知道命令行解析器已检测到内置选项?否则:是否有一种方法可以知道exit()
已在应用程序上调用,因此应用程序正在终止?如果是这样,将我*** SOME INITIALIZATION STUFF ***
的if
条件包含在对该方法的争论中就足够了,这很好......
感谢您的支持。
>> 编辑 <<
我已经做了一些进一步的调查......行为似乎不依赖于我自己*** SOME INITIALIZATION STUFF ***
......事实上,即使是“最小、完整和可验证的示例”,因为以下示例有时会在触发可执行文件时以分段错误终止执行在--version
命令行上:
澄清一下,我在运行 Linux 操作系统的 ARM 设备上使用 Qt 5.3.2。
c# - 在 C# 中解析命令行参数/选项
我有一个带有一些参数和选项的控制台应用程序,所以我想使用一个免费的第三方库。
为此,我找到了两个库:NDesk.Options和命令行解析器库
最后我决定使用命令行解析器库,因为使用属性更清晰,所以我下载了它并添加了对它的引用。
问题是在添加对我的 .NET Framework 3.5 项目的引用时,我得到一个警告图标。从我下载的上面的页面中,它说兼容性是 .NET Framework 3.5+,所以我理解 3.5 是兼容的,对吗?如果不是,它的哪个先前版本与 .NET Framework 3.5 兼容?
qt - qt5 QCommandLineParser 所需值
我有这个代码:
当我这样称呼它时:
有用。
当我这样称呼它时:
我看到一条错误消息“...之后缺少值”,这是预期的
但是当我这样称呼它时:
该字符串--boolean-option
被解释为--required-value-option
!!! 这不是我所期望的。这应该会触发错误。
如何使用 QCommandLineParser 正确解析具有所需值的选项?
UPD:如果您在 Qt 应用程序中为选项使用一些必需的值 - 您可以对其进行测试。
UPD2:当前行为例如:--no-gui 布尔选项和--output-file 必需的文件选项。像猴子一样运行它:
哇!应用程序以 gui 开头并显示“--no-gui 文件不存在”。干得好人!
UPD3:好的。我想将注册的选项解释为选项,而不是以前选项的值。示例:--no-gui 可以是有效的文件名,但由于这是已注册的选项,解析器不应将其用作值。
c++ - QCommandLineParser 向参数添加功能
我是 Qt 框架的新手,我正在使用QCommandLineParser
编写一个简单的控制台应用程序来处理一些参数,例如:
或者
我怎么能理解用户输入了一个参数?我想为参数添加功能。
这是我的代码:
c++ - 如何在 QCommandLineParser 中使用文件名通配符
Windows 中的 QCommandLineParser 和文件名通配符有问题吗?
我在 Windows 上使用 Qt 5.8.0 开源来构建控制台应用程序。我正在尝试构建一个接受文件名通配符的命令行实用程序。这似乎不起作用,因为它依赖于 process() 方法。
主.cpp:
myapp.pro
当我使用命令时:
myapp somefile.txt
我明白了somefile.txt
但这不适用于以下命令:
myapp *.txt
解决这个问题的最佳方法是什么?
qt - 如何将 QCommandLineParser 的实例化传递给 Qt 中的函数?
目前我有一个工作的 Qt 命令行应用程序。但是,我需要重构这个工作程序,以便我的 QCommandLineParser 对象在类方法中而不是在 main() 本身中配置。我已经尝试了明显的:
在 ExecuteTask.h 中:
在 ExecuteTask.cpp 中:
在 main.cpp 中:
但是,我收到此错误(附加在链接中): 编译错误
我还尝试将 QCommandLineParser 解析器声明为 ExecuteTask.h 中的指针,但显然这会在您必须运行时导致问题:
主要。我实际上也尝试过传递QCoreApplication app
给我的 setUp 函数以parser.process(app)
在我的setUp()
方法中运行,但这带来了类似的“......在此上下文中是私有的”。
还尝试了另一种解决方案,其中声明QCommandLineParser parser
为指针并使用getParser()
方法在 main 中返回解析器,但这会导致类似的“私有”问题。
-- 不知道从哪里开始,因为我习惯了 C++,只是将 argc 和 argv 传递给方法,但这与 Qt 不同。
那么有没有一种方法可以将 QCommandLineParser 传递给 main() 之外的方法?文档对我帮助不大,几乎我遇到的每个教程都在 main() 中完成了所有配置,这根本不是我想做的。