首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QApplication应用程序(argc,argc)

QApplication应用程序(argc,argc)
EN

Stack Overflow用户
提问于 2011-04-24 11:04:53
回答 4查看 9.1K关注 0票数 3

我注意到,main.cpp应用程序中的Qt必须包含以下行:

代码语言:javascript
复制
QApplication app(argc, argv);

我知道argc是命令行参数的数量,argv是命令行参数的数组列表。但是,我脑海中的问题是:,我传递给构造函数的那些参数是什么,同时不能显式地看到?什么在外面的侦察中起作用?

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2011-04-24 11:09:41

没有隐藏的争论。您可以显式地看到每个参数- argc, argv。在幕后的代码行中没有任何东西。

票数 2
EN

Stack Overflow用户

发布于 2011-04-24 13:00:22

Qt应用程序支持一些命令行参数。例如,Windows上的app.exe -style motif很有趣。基本上,在这个构造函数中,您将参数传递给QApplication类,以便对它们进行解析。

当然,您可以自由地将任何东西传递给QApplication,如下所示:

int c=1; char** v = &argv[0]; QApplication app(c,v);因此Qt不会解析任何东西,也不会接受任何命令行参数。

关于argc和argv作用域,如果您传递给QApplication,您可以从您想要的任何点访问它们。如果你不把它们传递给QApplication,你必须自己小心,使它们全球化。

票数 2
EN

Stack Overflow用户

发布于 2011-04-25 02:05:59

从您的评论到其他答案,如果您不指定任何参数的话,我想您正在考虑传递给可执行文件的参数。我不确定它是否是标准化的,也不确定异常是什么,但通常情况下,argc将是1,而argv[0]将是指定用于调用可执行文件的命令的字符串。

让我们假设您的可执行文件名为app,驻留在/home/user/appdir中。

如果您的当前目录是应用程序目录,然后使用'app‘启动它,那么argc将是1argv[0]将是app

如果您是应用程序目录中的一个目录,并使用./appdir/app调用它,那么argc将是1,我相信argv[0]将是appdir/app

如果在调用应用程序时确实指定了一个参数,则可能需要告诉应用程序输出调试信息,如so app debug。在本例中,argc2argv[0]appargv[1]debug

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5770154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档