前言
在Qt开发中可能会遇到如下问题。有两个按钮,绑定相同的槽函数,但是又想在点击的时候区分是哪一个,这个可以怎么做呢?我目前的做法是给控件设置自定义属性(setProperty)。
具体做法
// 我先为两个按钮设置自定义 Index 属性,以此来区分是点击的哪一个
ui->btn1->setProperty("Index", "0");
ui->btn2->setProperty("Index", "1");
connect(ui->btn1, &QPushButton::clicked, this, &MainWindow::btnClick);
connect(ui->btn2, &QPushButton::clicked, this, &MainWindow::btnClick);
// 下面是自定义按钮绑定的槽函数
void MainWindow::btnClick()
{
QPushButton *btnSender = (QPushButton*)sender();
int btn1Index = btnSender->property("Index").toInt();
if(btn1Index)
{
qDebug() << "btn1";
}
else
{
qDebug() << "btn0";
}
}