语句无法解析重载函数的地址的Qt/C++

问题描述:

void RollsRoyceTab::stateRRChanged(int) 
{ 
    stateRR = checkBoxRollsRoyce->checkState(); 
    if(stateRR) emit signal_rr_alg; else emit signal_rr_manual; 
} 

在STATERR语句错误无法解析重载函数的地址语句无法解析重载函数的地址的Qt/C++

emit只是语法糖 - 它实际上并没有做任何事情,进行预处理出的C++码。接下来的emit必须是有效的函数调用,而不是信号名称。

更改你的代码(假设没有参数的信号):

if(stateRR) 
    emit signal_rr_alg(); 
else 
    emit signal_rr_manual(); 

(注意,用布尔或枚举参数有关的信号可能会好一点 - 取决于你连接这些信号是什么虽然)。