c++ - QMetaObject::connectSlotsByName 错误

标签 c++ qt signals-slots

可能解决方案很简单,但是从对话框中删除 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/

相关文章:

C++ SSL 虚拟主机

C++11,仅将一个字段复制到 vector 中

c++ - 在 Qt 上使用 UIC (c++)

python - PyQt5 信号槽装饰器示例

c++ - Qt中连接不同类的信号槽

iphone - 如何在iphone项目中添加C++文件

c++ - 将语法与匿名模板类型混淆?

c++ - 在不使用专用计数器的情况下检查 QTextStream 读取的总行数

c++ - 在我的类中声明的函数未显示在范围内

c++ - 从非 qt 线程调用 Qt slot safe