2015-04-23 95 views
2

我在C++和Qt Creator中编程,我的代码完美工作。尽管如此,我还是遇到了编译我的代码时出现警告的问题。没有插槽,但QMetaObject :: connectSlotsByName错误使用Qt和C++

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

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

回答

1

有一个connect()打电话试图连接到on_but_PrintTab_clicked的某个地方。只需搜索“on_but_PrintTab_clicked”并删除此电话即可connect()

1

Qt的autoconnect mechanism试图信号用的形式连接到对象的插槽:

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

所以在这里它试图找到具有clicked信号,将其连接到您的插槽名称but_PrintTab对象。但是没有这样的事情,它会输出警告。

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

如果按钮和插槽不再存在,请尝试再次在您的项目上运行qmake并将其解决。

0

要么更改函数的名称,要么不在公共/专用槽中声明该函数,而是将其声明为public或private。