我正在使用Qt 5.9。
我在使用下划线样式声明插槽时遇到了问题,特别是当我用超过2个下划线命名时。例如使用void on_stop_treatment()
插槽,即使我没有建立连接,我得到{{1 }}
无论如何,建立连接,即使我得到相同的消息,插槽信号机制也能正常工作。删除第二个下划线我没有得到任何错误消息,该机制工作。 (我也尝试删除moc文件并重建)
答案 0 :(得分:3)
声明名为on_stop_treatment
的广告位将与名为Signal/Slot Automatic Connections的Qt功能冲突
Qt将检测您的插槽的这种特定语法,并尝试将stop
与名为stop
和treatment
的QObject匹配,并在该类中声明该名称的信号QObject的。
为实现这一目标,Qt使用内部QMetaObject::connectSlotsByName(this);
来执行自动信号/插槽连接。