将主要参数传递给 gui 库的初始化函数

Passing main arguments to init functions of gui libraries

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

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

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

Although you are expected to pass the argc , argv parameters from main() to this function, it is possible to pass NULL if argv is not available or commandline handling is not required.

argc and argv are adjusted accordingly so your own code will never see those standard arguments.

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

Qt 的 QApplication 同样接受命令行参数并删除它接受的参数。这与 QApplication constructor documentation.

中接受的参数一起记录