Qt设置控件的自定义属性

文章目录[隐藏]

前言

Qt开发中可能会遇到如下问题。有两个按钮,绑定相同的槽函数,但是又想在点击的时候区分是哪一个,这个可以怎么做呢?我目前的做法是给控件设置自定义属性(setProperty)。

Qt设置控件的自定义属性

具体做法

// 我先为两个按钮设置自定义 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";
    }
}


posted @ 2019-12-04 06:17  不随。  阅读(58)  评论(0)    收藏  举报  来源