我在C++和Qt Creator中编程,我的代码完美工作。尽管如此,我还是遇到了编译我的代码时出现警告的问题。没有插槽,但QMetaObject :: connectSlotsByName错误使用Qt和C++
QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()
曾经有()名为on_but_PrintTab_clicked的狭槽,但它不再存在。我怎样才能摆脱这个警告?
我在C++和Qt Creator中编程,我的代码完美工作。尽管如此,我还是遇到了编译我的代码时出现警告的问题。没有插槽,但QMetaObject :: connectSlotsByName错误使用Qt和C++
QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()
曾经有()名为on_but_PrintTab_clicked的狭槽,但它不再存在。我怎样才能摆脱这个警告?
有一个connect()
打电话试图连接到on_but_PrintTab_clicked
的某个地方。只需搜索“on_but_PrintTab_clicked”并删除此电话即可connect()
。
Qt的autoconnect mechanism试图信号用的形式连接到对象的插槽:
void on_<object name>_<signal name>(<signal parameters>);
所以在这里它试图找到具有clicked
信号,将其连接到您的插槽名称but_PrintTab
对象。但是没有这样的事情,它会输出警告。
如果您有这样的插槽,您应该将其名称更改为其他名称以避免此警告。
如果按钮和插槽不再存在,请尝试再次在您的项目上运行qmake并将其解决。
要么更改函数的名称,要么不在公共/专用槽中声明该函数,而是将其声明为public或private。