【问题标题】:Can I get all command line arguments that are not used by Qt?我可以获取所有 Qt 不使用的命令行参数吗?
【发布时间】:2021-07-12 21:09:09
【问题描述】:

我正在开发一个希望接受命令行参数的 Qt 应用程序。
我不想将QCommandLineParserQCommandLineOptions 一起使用,因为它不支持诸如内置argparse 之类的选项,并且因为它需要在@987654326 之前初始化QApplication之前 @.
但是,我不能简单地使用来自sys.argv 的参数,因为它们也包含Qt 特定的参数,例如--style
Qt 有一个内置函数来给我这些 Qt 本身不使用的参数,还是我必须自己一个一个地过滤掉它们?

我确实找到了QCoreApplication.arguments(),但这不符合我的需要。引用the docs:

在 Unix 上,这个列表是由传递给 main() 函数中的构造函数的 argc 和 argv 参数构建的

据此,我推断QCoreApplication.arguments 返回的参数列表仍然包含Qt 特定的选项,例如--style

【问题讨论】:

  • 尚未检查,但QApplication 构造函数不会从sys.argv 中删除已识别的参数吗?
  • @G.M.天哪,它确实删除了它们!但是为什么文档中没有说明这一点?无论如何,谢谢 - 如果您将其作为答案,我将很乐意接受并投票!

标签: python-3.x qt arguments qt5 command-line-arguments


【解决方案1】:

根据评论,代码...

app = QApplication(sys.argv)

将从sys.argv 中删除已识别的参数,之后您可以随意对sys.argv 进行处理。

请注意,虽然这似乎没有在 python 文档中明确说明,但 c++ docs. 状态...

注意:argc 和 argv 可能会随着 Qt 删除它识别的命令行参数而改变。

【讨论】:

    猜你喜欢
    • 2013-01-13
    • 1970-01-01
    • 2021-08-12
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多