首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QMetaObject::connectSlotsByName:无匹配信号

QMetaObject::connectSlotsByName:无匹配信号
EN

Stack Overflow用户
提问于 2014-06-22 19:41:34
回答 3查看 18.6K关注 0票数 10

我设置了一个QT菜单,它与动作函数on_actionOpen_triggered()自动连接。稍后,我希望向该函数传递一个文件名字符串,以便在特定条件下手动调用该函数。因此,我将函数签名更改为on_actionOpen_triggered( const char *filename_in )。在这个改变之后,程序运行良好,但是终端中有一个投诉,

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

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

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2018-04-18 06:25:38

我面对着同样的QMetaObject::connectSlotsByName:Warning/Error没有匹配的信号

得到了简单的解决方案。例如:

问题:

QMetaObject::connectSlotsByName: No matching signal for on_actionOpen_triggered(const char*)警告您只需更改Slot的名称

溶液

更改插槽名(如on_actionOpenTriggered ),此警告将消失。

提示

Qt试图理解它的默认插槽(如on_<name_of_object>_<action> ),因此如果您指定具有上述签名的任何插槽,Qt将抛出警告。

希望它能对某人有所帮助。

票数 14
EN

Stack Overflow用户

发布于 2014-06-22 20:09:04

Qt自动连接机制无法找到合适的信号到您的插槽。对于菜单项,没有任何信号可以与一个参数匹配,信号不能使的参数比插槽少。

您可以更改插槽的名称,这样它就不会试图找到匹配的信号,直接使用QObject::connect而不是QMetaObject::connectSlotsByName。此外,如果希望filename_in处理connect信号,则必须为参数triggered分配默认值。

票数 8
EN

Stack Overflow用户

发布于 2022-03-06 19:26:00

我的问题是PySide6,而不是PyQt5。通过使用PySide6,我删除了-decorators槽(),从而摆脱了消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24355023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档