QObject::sender()说明

在槽函数里,使用 QObject::sender()可以获取信号发射者指针,如果知道信号发射者的类型,可以将指针投射为确定的类型,然后使用这个确认类的接口函数。

QObject::sender()具体用法

同时定义多个控件时,用sender区分当前使用的是哪个控件。
 // 自定义两个按钮
    QPushButton *btnAdd = new QPushButton(this);
    btnAdd->setText(QStringLiteral("Add Data "));

    QPushButton *btnDel = new QPushButton(this);
    btnDel->setGeometry(QRect(0, 100, 100, 50));
    btnDel->setText(QStringLiteral("Del Data "));

    connect(btnAdd, &QPushButton::clicked, this, &MainWindow::btnAddClick);
    connect(btnDel, &QPushButton::clicked, this, &MainWindow::btnAddClick);

    // 打印出按钮地址
    qDebug() << "Add Addr:"<< btnAdd << "Del Addr:" << btnDel;
void MainWindow::btnAddClick()
{
    // 获取是那个按钮点击了
    QPushButton *obj = qobject_cast<QPushButton *>(sender());
    // 打印出按钮地址
    qDebug() << obj;

}

Qt QObject::sender()用法_c/c

使用 QObject::sender()获取是哪个按钮,执行结果

Qt QObject::sender()用法_c/c_02