运行mainwindowm.cpp

运行mainwindowm.cpp总是会出现这样的问题
**QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked() **
运行出来的窗口输入账号和密码,点击登录按钮,并没有显示出来,怎么样修改才能显示出来呢?

.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include 
#include 
#include 
#include 

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    database myDatabase;
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
signals:
    void try_login();
private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H


.cpp文件


```c++
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->myDatabase.getConnection();
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow:: on_pushButton_clicked()
{
    QString userInputtype;
    if(ui->radioButton_2->isChecked())
    {
        userInputtype = "counter";
    } 
    else
    {
        userInputtype = "manager";
    }
    QString userInputNumber = ui->InputNumber->text();
    QString userInputPassWord = ui->InputPassWord->text();
    qDebug()<<"用户输入的账号"+userInputNumber;
    qDebug()<<"用户输入的密码"+userInputPassWord;
}


你是不是改过登录按钮的名称了原来叫pushButton,这个槽函数是改名前在ui自动生成的?
改名后要把槽函数的名字也对应着改掉才能完成按对象名称自动接
解释一下那行输出吧,用ui文件生成的代码会自动执行QMetaObject::connectSlotsByName方法,它的执行逻辑是寻找名称符合模板"on_对象名称_信号名称"的槽函数,有的话它就会尝试找到ui中对应名称的对象,然后尝试把这个槽函数跟对象的对应信号连接起来,所以它报的这行输出的意思,就是没有在ui里找到有名称为pushButton的对象有叫clicked的信号

去ui里看你按钮的名字是不是对的