我正在用 C++ 和 Qt Creator 编程,我的代码运行良好。尽管如此,我还是遇到了编译代码时收到警告的问题。
QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()
曾经有一个名为on_but_PrintTab_clicked()的插槽,但它不再存在。我怎样才能摆脱这个警告?
我正在用 C++ 和 Qt Creator 编程,我的代码运行良好。尽管如此,我还是遇到了编译代码时收到警告的问题。
QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()
曾经有一个名为on_but_PrintTab_clicked()的插槽,但它不再存在。我怎样才能摆脱这个警告?
Qt自动连接机制尝试将信号连接到具有以下形式的对象槽:
void on_<object name>_<signal name>(<signal parameters>);
因此,它在这里尝试找到一个名称为的对象,该对象具有将其连接到您的插槽but_PrintTab
的信号。clicked
但是没有这样的事情,它会输出那个警告。
如果您有这样的插槽,则应将其名称更改为其他名称以避免出现此警告。
如果按钮和插槽不再存在,请尝试在您的项目上再次运行 qmake,它会得到解决。
在您的呼叫中某处有一个connect()
呼叫试图连接到on_but_PrintTab_clicked
。只需搜索“on_but_PrintTab_clicked”并删除此connect()
调用。
要么更改函数的名称,要么不在公共/私有插槽中声明函数,而是将其声明为公共或私有。