Qt 信号和槽获取发送者对象

若有多个信号绑定同一个槽:

 QCheckBox *ckb = new QCheckBox(this);
 connect(ckb, &QCheckBox::clicked, this, &MyWidget::ckb_clicked);

槽函数中判断发送者对象:

void MyWidget::ckb_clicked(bool check)
{
    QCheckBox *ckb = qobject_cast<QCheckBox *>(sender());
    QString info = ckb->isChecked() ? ckb->objectName() + "选择。" : ckb->objectName() + "取消。";
    QMessageBox::information(this, "提示", info);
}

QCheckBox *ckb = qobject_cast<QCheckBox *>(sender());这个转换判断。

posted @ 2024-11-12 10:19  double64  阅读(5)  评论(0编辑  收藏  举报