c++ - QMetaObject::connectSlotsByName:没有匹配的信号

标签 c++ qt signals-slots

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

QMetaObject::connectSlotsByName: No matching signal for on_actionOpen_triggered(const char*)

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

谢谢。

最佳答案

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

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

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

解决方案
更改插槽名称,如 on_actionOpenTriggered这个警告消失了。

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

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

关于c++ - QMetaObject::connectSlotsByName:没有匹配的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24355023/

相关文章:

c++ - QML 中属性绑定(bind)评估的顺序和方式

qt - qDebug()<<qstring 不再编译

c++ - 如何在 Qt 中获取 QSortFilterProxyModel 的源模型?

c++ - 自动更新 QDateTimeEdit 以显示当前系统日期和时间

c++ - 如何在 rstudio 上为使用子目录内 src 文件夹中的 C/C++ 文件的包构建和加载共享库?

c++ - 如何在 Qt5 中启用已弃用的功能

qt - 如何知道哪个 QObject::connect 失败

c++ - 类似的函数peek(); (来自 C++)在 Ruby 中

c++ - 使用 mpg123 和 c++ 在树莓派上播放 mp3

c++ - 来自注入(inject)的 .dll 的管道卡住直到进程终止