我设置了一个QT菜单,自动连接动作功能 on_actionOpen_triggered()
。稍后我想将文件名字符串传递给此函数,以便在特殊情况下手动调用此函数。所以我将函数签名更改为 on_actionOpen_triggered( const char *filename_in )
。进行此更改后,程序运行良好,但终端出现抱怨,
QMetaObject::connectSlotsByName:on_actionOpen_triggered(const char*) 没有匹配信号
我想知道发生了什么,以及如何为这个菜单操作函数添加参数。
谢谢你。
原文由 jhy 发布,翻译遵循 CC BY-SA 4.0 许可协议
我面临同样的
Warning/Error
QMetaObject::connectSlotsByName: No matching signal for并得到了简单的解决方案。例如:
问题 :
QMetaObject::connectSlotsByName: No matching signal for on_actionOpen_triggered(const char*)
警告您只需要更改Slot
解决方案
更改插槽名称,如
on_actionOpenTriggered
并且此警告消失。暗示
Qt 尝试理解其默认插槽,如
on_<name_of_object>_<action>
,因此如果您指定任何具有上述签名的插槽,Qt 将抛出警告。希望它对某人有所帮助。