QtCreator如何识别正在使用哪个替代?

时间:2019-02-14 13:05:11

标签: c++ qt signals overloading

在QtCreator中,当您将鼠标悬停在Qt函数上时,它将为您提供上下文帮助,该函数可以对呼叫可用的所有各种重载进行编号。

问题是,在QObject :: connect的情况下,有8个可用的重载,我如何知道实际使用了哪一个?

我有现有代码,并且我试图确定正在使用哪种重载方法,因此我可以清理代码并使用类型来替换:

QObject::connect(this
                        ,&clsQtPushBtn::clicked
                        ,[pobjScriptEng, strCall, strFile, strScript]() {
                            if ( strCall.isEmpty() != true ) {
                                QString strScriptWithCall = static_cast<QString>(strScript)
                                                         + static_cast<QString>(strCall) + "();";
                                pobjScriptEng->evaluate(strScriptWithCall);
                            }
                        });

我要做的是替换参数,将下面的代码分配给一个临时变量,然后将其分配为参数:

   [pobjScriptEng, strCall, strFile, strScript]() {
     if ( strCall.isEmpty() != true ) {
       QString strScriptWithCall = static_cast<QString>(strScript)
                                + static_cast<QString>(strCall) + "();";
       pobjScriptEng->evaluate(strScriptWithCall);
     }
   }

这是因为我想在其他连接中重用相同的参数,而不必复制源。

1 个答案:

答案 0 :(得分:1)

您的连接中包含lambda,因此所有可能的选项7都将重载方法

您可以使用参数内的ctrl +空格来检查哪个通行证更好

enter image description here