Qt 编译错误: QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked()

    首先,我们需要了解Qt信号和槽关联的方式有哪些?我所知道的Qt信号和槽关联方式一般有两种,一种是利用控件自动绑定信号和槽,那么系统会自动将槽函数命名为“on_[控件名称]_clicked()”。而另外一种方式就是利用显示方式关联信号和槽函数,也成为手动方式,即利用"connect()的方式绑定信号的槽函数,此方式不容易报错。

    而我报错的原因就是使用了第一种方式,利用控件自动绑定信号和槽。如下图所示:

图1

    这个问题其实说大不大,说小也不小。但是,我举个例子,如果你的工程很大,而且里面有很多控件命名不规范,当你遇到这个问题的时候,就很难找到问题了。废话不多说,开门见山吧。

    我是由于之前写了个测试控件,控件名称是“pushButton”,测试完后就把控件按钮删了,但是没有删掉对应的槽函数,所以就存在这个问题,代码编译通过,但是老报警提示,对于有强迫症的我来说,很不爽,代码量很大,找了两天才找出来。解决方案:注释掉没有用的槽函数,问题解决。如下图:

Qt 编译错误: QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked()_第1张图片
图2
图3
图4

你可能感兴趣的:(Qt 编译错误: QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked())