Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt 5.9插槽命名错误_C++_Qt_Qt Slot - Fatal编程技术网

C++ Qt 5.9插槽命名错误

C++ Qt 5.9插槽命名错误,c++,qt,qt-slot,C++,Qt,Qt Slot,我正在使用Qt5.9 使用下划线样式声明插槽时,我遇到一个问题,尤其是当我使用超过2个下划线命名插槽时。例如,使用void on_stop_treatment()slot时,即使我没有建立连接,我也会得到QMetaObject::connectSlotsByName:on_stop_treatment()没有匹配信号 无论如何,建立连接,即使我收到相同的消息,插槽信号机制也能工作。删除第二个下划线时,我不会收到任何错误消息,并且该机制可以工作。(我还尝试删除moc文件并重建)在停止治疗时用名称声

我正在使用Qt5.9

使用下划线样式声明插槽时,我遇到一个问题,尤其是当我使用超过2个下划线命名插槽时。例如,使用
void on_stop_treatment()
slot时,即使我没有建立连接,我也会得到
QMetaObject::connectSlotsByName:on_stop_treatment()没有匹配信号


无论如何,建立连接,即使我收到相同的消息,插槽信号机制也能工作。删除第二个下划线时,我不会收到任何错误消息,并且该机制可以工作。(我还尝试删除moc文件并重建)

在停止治疗时用名称
声明插槽将与名为

Qt将为您的插槽检测此特定语法,并尝试将
stop
与名为
stop
的QoObject和
treatment
与QoObject类中声明的该名称信号相匹配


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

在停止治疗时用名称
声明插槽将与调用的Qt功能冲突

Qt将为您的插槽检测此特定语法,并尝试将
stop
与名为
stop
的QoObject和
treatment
与QoObject类中声明的该名称信号相匹配


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

这可能是一个错误,moc要连接Qt Designer创建的一些插槽,请使用此方法,此方法将尝试连接上格式为
的任何插槽,在你的例子中,你的槽有这种格式,所以它在你的类中查找,但从你的回答中我了解到,我应该得到QMetaObject::connectSlotsByName:stop()没有匹配信号,而不是QMetaObject::connectSlotsByName:on_stop_treatment()没有匹配信号,它将尝试在假设的
停止
对象上查找假设的
治疗
信号这可能是一个错误的重复,moc将使用该方法连接Qt Designer创建的一些插槽,该方法将尝试连接任何具有
格式的插槽,在你的例子中,你的槽有这种格式,所以它在你的类中查找,但从你的回答中我了解到,我应该得到QMetaObject::connectSlotsByName:stop()没有匹配信号,而不是QMetaObject::connectSlotsByName:on_stop_treatment()没有匹配信号,它将尝试在假设的
停止
对象上查找假设的
治疗
信号此问题重复,无需回答。可能重复Nope,请询问他在这样命名插槽时为什么会出现此错误。jhy提出的另一个问题是,为什么他的信号/插槽自动连接不能正常工作。这里没有复制品,但我喜欢你的化身。送奶工丹在工作中(或Karen)真的没有得到足够的赏识。这个问题是重复的,没有必要回答。可能是重复的Nope,OP问他为什么在这样命名他的插槽时出现这个错误。jhy提出的另一个问题是,为什么他的信号/插槽自动连接不能正常工作。这里没有复制品,但我喜欢你的化身。送牛奶的丹在他的工作中(或卡伦)真的没有得到足够的赏识。