0

Qt 4.8.1,原代码是这样的:

connect(this->m_CodeMemoryComboBox, SIGNAL(currentIndexChanged(QString)),
      this, SLOT(updateCodeMemoryFormate()));

这真的让我很困惑,[问题]我可以在使用 QObject::connect 时将参数传递给 slot 函数吗?这告诉我参数应该匹配,但是这里发生了什么,如果我删除该参数,代码将会出错。

4

2 回答 2

4

Qt 文档对此进行了描述。在“信号和槽”标题下搜索“(事实上,一个槽的签名可能比它接收的信号更短,因为它可以忽略额外的参数。)”

基本上,如果第一个参数的类型匹配,您可以将N-parameter 信号连接到M-parameter 插槽。信号中的任何剩余参数都会被插槽忽略。M <= NM

于 2013-09-23T13:01:49.550 回答
1

QT 文档说,

信号和槽机制是类型安全的:信号的签名必须与接收槽的签名匹配。(事实上​​,一个槽的签名可能比它接收到的信号更短,因为它可以忽略额外的参数。)

于 2013-09-23T13:05:56.937 回答