可能解决方案很简单,但是从对话框中删除 ButtonBox 后,出现以下错误:
QMetaObject::connectSlotsByName: No matching signal for on_buttonBox_accepted()
对话框类中有一个同名的插槽,我使用它。 我不知道 Qt 为什么认为应该有另一个信号连接到那个插槽。 (我检查了 c++ 和 .ui xml 文件)
最佳答案
QMetaObject::connectSlotsByName
期待一个名为 buttonBox
的对象用accepted
信号,但正如你所说,你删除了这样的对象。
当您使用 void on_<object name>_<signal name>(<signal parameters>);
命名插槽的语法,QMetaObject::connectSlotsByName
将尝试按名称将该插槽连接到信号。 QMetaObject::connectSlotsByName
在你的 ui_classname.h
中的某处被调用文件。
要解决此问题,请将插槽重命名为其他名称,例如删除 on_
部分。
关于c++ - QMetaObject::connectSlotsByName 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379305/