QMetaObject::connectSlotsByName:没有匹配的信号

新手上路,请多包涵

我设置了一个QT菜单,自动连接动作功能 on_actionOpen_triggered() 。稍后我想将文件名字符串传递给此函数,以便在特殊情况下手动调用此函数。所以我将函数签名更改为 on_actionOpen_triggered( const char *filename_in ) 。进行此更改后,程序运行良好,但终端出现抱怨,

QMetaObject::connectSlotsByName:on_actionOpen_triggered(const char*) 没有匹配信号

我想知道发生了什么,以及如何为这个菜单操作函数添加参数。

谢谢你。

原文由 jhy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
1 个回答

我面临同样的 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 将抛出警告。

希望它对某人有所帮助。

原文由 AB Bolim 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题