Qt中通过信号槽函数获取发送信号的对象(qobject

    技术2023-08-18  106

    在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(); }

     

    Processed: 0.013, SQL: 9