Qt中通过信号槽函数获取发送信号的对象(qobject_cast、sender)

在Qt中,可以通过信号槽函数获取发送者对象,主要有两个核心函数qobject_cast()和sender()。用法如下

1.1先通过connect绑定信号槽,代码如下:

QLineEdit *lineEdit = new QLineEdit();
lineEdit->setObjectName("lineEdit");
connect(lineEdit,&QLineEdit::textChanged,this,&slot_lineEditGroup_textChange);


1.2在槽函数中,通过qobject_cast<>()和sender()函数获取发送者对象,代码如下

void QWidget::slot_lineEditGroup_textChange(QString str)
{    
    QLineEdit *lineEdit=qobject_cast(sender());
    qDebug()<<"lineEdit->objectName()=="<objectName();
}


1.3完整代码和输入结果如下所示:
 

QLineEdit *lineEdit = new QLineEdit();
lineEdit->setObjectName("lineEdit");
connect(lineEdit,&QLineEdit::textChanged,this,&slot_lineEditGroup_textChange);
 
void QWidget::slot_lineEditGroup_textChange(QString str)
{    
    QLineEdit *lineEdit=qobject_cast(sender());
    qDebug()<<"lineEdit->objectName()=="<objectName();
}

 

你可能感兴趣的:(QT)