gpt4 book ai didi

c++ - Qt 5.9 插槽命名错误

转载 作者:行者123 更新时间:2023-11-27 23:50:43 24 4
gpt4 key购买 nike

我正在使用 Qt 5.9。

我在用下划线样式声明插槽时遇到问题,特别是当我用超过 2 个下划线命名它时。例如使用 void on_stop_treatment() 插槽,即使我没有建立连接,我得到 QMetaObject::connectSlotsByName: No matching signal for on_stop_treatment()

无论如何,建立连接,即使我收到相同的消息,插槽信号机制也会起作用。删除第二个下划线我没有收到任何错误消息并且该机制有效。 (我也试过删除 moc 文件并重建)

最佳答案

使用名称on_stop_treatment 声明您的插槽将与称为Signal/Slot Automatic Connections 的Qt 功能发生冲突。

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

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

关于c++ - Qt 5.9 插槽命名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46644024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com