2

我正在用 C++ 和 Qt Creator 编程,我的代码运行良好。尽管如此,我还是遇到了编译代码时收到警告的问题。

QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()

曾经有一个名为on_but_PrintTab_clicked()的插槽,但它不再存在。我怎样才能摆脱这个警告?

4

3 回答 3

1

Qt自动连接机制尝试将信号连接到具有以下形式的对象槽:

void on_<object name>_<signal name>(<signal parameters>);

因此,它在这里尝试找到一个名称为的对象,该对象具有将其连接到您的插槽but_PrintTab的信号。clicked但是没有这样的事情,它会输出那个警告。

如果您有这样的插槽,则应将其名称更改为其他名称以避免出现此警告。

如果按钮和插槽不再存在,请尝试在您的项目上再次运行 qmake,它会得到解决。

于 2015-04-23T08:41:55.320 回答
1

在您的呼叫中某处有一个connect()呼叫试图连接到on_but_PrintTab_clicked。只需搜索“on_but_PrintTab_clicked”并删除此connect()调用。

于 2015-04-23T08:04:12.733 回答
0

要么更改函数的名称,要么不在公共/私有插槽中声明函数,而是将其声明为公共或私有。

于 2015-04-24T05:45:51.500 回答