在Qt中,可以通过信号槽函数获取发送者对象,主要有两个核心函数qobject_cast<T>()和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<QLineEdit *>(sender()); qDebug()<<"lineEdit->objectName()=="<<lineEdit->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<QLineEdit *>(sender()); qDebug()<<"lineEdit->objectName()=="<<lineEdit->objectName(); }