Qt 4.8.1,原代码是这样的:
connect(this->m_CodeMemoryComboBox, SIGNAL(currentIndexChanged(QString)),
this, SLOT(updateCodeMemoryFormate()));
这真的让我很困惑,[问题]我可以在使用 QObject::connect 时将参数传递给槽函数吗? 这告诉我参数应该匹配,但是这里发生了什么,如果我删除那个参数,代码就会出错。
最佳答案
Qt documentation描述这个。在“信号和槽”标题下搜索“(事实上,槽的签名可能比它接收到的信号更短,因为它可以忽略额外的参数。)”
基本上,您可以连接一个 N
-参数信号到M
-parameter slot if M <= N
第一个M
参数类型匹配。来自信号的任何剩余参数都会被插槽忽略。
关于c++ - 为什么连接的信号有参数但插槽没有参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959744/