以下片段来自我使用Qt框架编写的一个小应用程序.这个想法是,应用程序可以批处理模式运行(即由脚本调用),也可以以交互方式运行.
因此,我可以解析命令行参数,以便知道运行哪种模式.
[编辑]
我正在使用Ubuntu Karmic上的Qt Creator 1.3.1进行调试.参数以正常方式传递(即通过Qt Creator IDE中的“项目”设置添加参数).
当我运行应用程序时,似乎没有将参数传递给应用程序.下面的代码是我的main()函数的代码段.
int main(int argc,char *argv[])
{
//Q_INIT_RESOURCE(application);
try {
QApplication the_app(argc,argv);
//trying to get the arguments into a list
QStringList cmdline_args = QCoreApplication::arguments();
// Code continues ...
}
catch (const MyCustomException &e) { return 1; }
return 0;
}
[更新]
我已经确定了这个问题 – 由于某些原因,尽管argc是正确的,但argv的元素是空字符串.
我把这个小代码片段打印出来,可以看出它们都是空的.
for (int i=0; i< argc; i++){
std::string s(argv[i]); //required so I can see the damn variable in the debugger
std::cout << s << std::endl;
}
有没有人知道如何在我的应用程序中检索命令行参数?