QMetaObject :: connectSlotsByName错误

时间:2014-08-19 08:54:44

标签: c++ qt signals-slots

可能解决方案很简单,但在从对话框中删除ButtonBox后,我收到以下错误:

QMetaObject::connectSlotsByName: No matching signal for on_buttonBox_accepted()

对话框类中有一个带有该名称的插槽,我使用它。 我不知道为什么Qt认为应该有另一个信号连接到那个插槽。 (我检查了c ++和.ui xml文件)

1 个答案:

答案 0 :(得分:2)

QMetaObject::connectSlotsByName期待一个名为buttonBox的对象带有accepted信号,但正如您所说,您删除了此类对象。

当您使用void on_<object name>_<signal name>(<signal parameters>);语法为插槽命名时,QMetaObject::connectSlotsByName会尝试按名称将该插槽连接到信号。在QMetaObject::connectSlotsByName文件中的某处调用ui_classname.h

要解决此问题,请将您的广告位重命名为其他内容,例如删除on_部分。