将主要参数传递给 gui 库的 init 函数

Posted

技术标签:

【中文标题】将主要参数传递给 gui 库的 init 函数【英文标题】:Passing main arguments to init functions of gui libraries 【发布时间】:2015-01-28 03:19:05 【问题描述】:

当涉及到 Qt 和 GTK+ 等库中的库初始化时 您必须将主要参数传递给初始化库的函数。为什么?图书馆在用它们做什么?

【问题讨论】:

【参考方案1】:

为了方便起见,Qt 和 GTK+ 都旨在响应某些命令行标志。 (两者都响应各种环境变量。)您不一定必须将 argv 和 argc 发送到相应的 init 函数,但这并没有什么坏处,特别是如果您打算利用特点。

GTK+ documentation for gtk_init() has 是这样说的:

虽然你应该传递 argc , argv 参数 main() 到这个函数,如果 argv 不是,则可以传递 NULL 可用或不需要命令行处理。

argc 和 argv 会相应调整,因此您自己的代码永远不会看到 那些标准的论点。

GTK+ 接受的命令行选项的完整列表is here。

Qt 的 QApplication 类似地接受命令行参数并删除它接受的参数。这与QApplication constructor documentation 中接受的参数一起记录在案。

【讨论】:

应用程序甚至可能是一个命令行应用程序。这就是为什么我们有方便的QCommandLineParser

以上是关于将主要参数传递给 gui 库的 init 函数的主要内容,如果未能解决你的问题,请参考以下文章

带参数的 Dat.gui 函数调用?

如何将 __init__ 参数传递给使用 qmlRegisterType 注册的类?

将其他参数传递给gtk函数

在 extjs MVC 架构中如何将参数传递给函数

如何将附加参数传递给自定义 python 排序函数

Pybind11:将 string* 参数传递给构造函数