将主要参数传递给 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 函数的主要内容,如果未能解决你的问题,请参考以下文章