【问题标题】:QMetaObject::connectSlotsByName: No matching signal for on_pbZatwierdz_clicked(QString)QMetaObject::connectSlotsByName:on_pbZatwierdz_clicked(QString) 没有匹配信号
【发布时间】:2018-08-24 21:16:17
【问题描述】:

我想将按钮的 clicked() 信号与将 QString 作为参数的插槽连接起来。 我该如何解决?

主要:

QObject::connect(&first, SIGNAL(newTextEntered(const QString&)), &second, SLOT(on_pbZatwierdz_clicked((const QString&))));

主窗口:

void MainWindow::on_leEdytujKlienta_returnPressed()
{
    emit this->newTextEntered(ui->leEdytujKlienta->text());
}

FORM2:

void edytujklienta::on_pbZatwierdz_clicked(const QString &text)
{    
    qDebug() << "Received number ID: " << text ; 
}

//显示你的 .h 和 .cpp :),

edytujklienta.cpp 代码:

   void edytujklienta::onpbZatwierdzclicked(const QString &text)
{    
    qDebug() << "ODEBRANO numer ID: " << text ;
    QString Nazwisko;
    Nazwisko=ui->lineNazwisko->text();
    QSqlQuery updateQuery ;
    updateQuery.prepare("UPDATE tKlient SET NAZWISKO = :newNAZWISKO, IMIE = :newIMIE WHERE ID = :id ");
    updateQuery.bindValue(":newIMIE",Imie);
    updateQuery.exec();   
}

【问题讨论】:

  • 有什么问题?使用QObject::connect(&amp;first, &amp;MainWindow::newTextEntered, &amp;second, &amp;edytujklienta::on_pbZatwierdz_clicked),阅读How to Ask,查看tour并改进您的问题,请提供minimal reproducible example
  • 简单,把on_pbZatwierdz_clicked全部改成onpbZatwierdzclicked
  • 我变了。但它不起作用。我没有错误:“没有匹配的信号”输出:QObject::connect: No such slot edytujklienta::onpbZatwierdzclicked((const QString&amp;)) in ..\Recp\main.cpp:30 QObject::connect: (sender name: 'MainWindow') QObject::connect: (receiver name: 'edytujklienta') Wczytano numerID 我没有:qDebug() &lt;&lt; "Received number ID: " &lt;&lt; text ;
  • 你在 .h 和 .cpp 中更改了吗?并使用新语法:QObject::connect(&amp;first, &amp;MainWindow::newTextEntered, &amp;second, &amp;edytujklienta::onpbZatwierdzclicked)

标签: c++ qt signals-slots


【解决方案1】:

使用 Qt5 风格的连接语法,并连接到 lambda 而不是插槽。然后 lambda 可以使用您需要的任何调用参数。

出于代码维护的原因,我强烈建议不要使用按名称连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2017-11-14
    • 2019-05-21
    • 2018-12-19
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多