Qt QObject::sender()用法
原创
©著作权归作者所有:来自51CTO博客作者小何博客的原创作品,请联系作者获取转载授权,否则将追究法律责任
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;
}
使用 QObject::sender()获取是哪个按钮,执行结果