Qt 5.9插槽命名错误

时间:2017-10-09 10:14:09

标签: c++ qt qt-slot

我正在使用Qt 5.9。

我在使用下划线样式声明插槽时遇到了问题,特别是当我用超过2个下划线命名时。例如使用void on_stop_treatment()插槽,即使我没有建立连接,我得到{{1 }}

无论如何,建立连接,即使我得到相同的消息,插槽信号机制也能正常工作。删除第二个下划线我没有得到任何错误消息,该机制工作。 (我也尝试删除moc文件并重建)

1 个答案:

答案 0 :(得分:3)

声明名为on_stop_treatment的广告位将与名为Signal/Slot Automatic Connections的Qt功能冲突

Qt将检测您的插槽的这种特定语法,并尝试将stop与名为stoptreatment的QObject匹配,并在该类中声明该名称的信号QObject的。

为实现这一目标,Qt使用内部QMetaObject::connectSlotsByName(this);来执行自动信号/插槽连接。