我的Qt5程序如何从控制台获取参数?

时间:2018-04-27 13:16:26

标签: c++ linux qt embedded-linux

我在qt5中创建了一个控制台程序,它应该在运行之前从控制台获取参数。

这是我使用从控制台传递的参数的代码的一部分:

void foo::start(){
    if(arguments.contains(--help))
        show help function
    else if (arguments.contains(--ipinfo))
        show ip info function
    else if (arguments.contains(--time))
        show time info function
    else 
        nothing
}

我的程序名称为initlizer。当我通过带有参数的控制台运行我的程序时,我想使用qt5从控制台获取参数。例如:

$initlizer --help >> show help function
$initlizer --time >> show time function

2 个答案:

答案 0 :(得分:2)

" Qt方式"处理命令行参数是将main的argc和argv传递给QCoreApplication构造函数,然后使用QCommandLineParser来查询参数。 (该链接包含大量示例代码。)

答案 1 :(得分:1)

在C ++中将参数传递给控制台程序,必须在源代码主函数中添加参数。主函数中的这些参数决定了他在接收和接收时使用的输入值。

  

例如:

     

这是非参数主函数的一个例子:

public int main ()
{ 
    // Functions body. 
}
     

这是一个接收字符串作为输入的主函数的示例:

public int main (int argc, char * argv[])
{
    // Functions body.
}
     

这是一个主函数的示例,它接收多个参数作为输入:

 public int main (int argc, char * argv[],  // other parameters)
{
    // Functions body.
}

要以Qt方式执行此操作,您必须在实例化QCoreApplication时在app构造函数中定义参数,然后使用QCommandLineParser来获取控制台传递的参数。

请参阅此page的详细说明部分中的示例。

您可以从此page获取有关main函数中参数的更多信息。