当我使用Connect信号和插槽时会发生此单元错误

时间:2019-10-31 06:14:14

标签: c++ qt deployment connect

当我在Desktop上这样执行时,它工作正常,但是当尝试在远程设备上进行部署时,就会发生错误。

connect(ui->lineEdit, &QLineEdit::returnPressed, this, [=]()->void
{
    QString str = ui->lineEdit->text();
    qDebug()<<"Input (HEX) = " << str;
    bool ok;
    int iVal = str.toInt(&ok,16);
    QString binnumber = str.setNum(iVal, 2);
    if(ok)
        ui->lineEdit_2->setText(binnumber);
    else
        ui->lineEdit_2->setText("Not a number");
    qDebug()<<"output in binary = " << binnumber;
});

错误:

1).
/usr/local/Qt-4.8.7-arm/include/QtGui/qlineedit.h:196: error: ‘void QLineEdit::textEdited(const QString&)’ is protected
     void textEdited(const QString &);
          ^
2). 
/home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:24: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
     });
     ^
3).
/home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:24: error: no matching function for call to ‘MainWindow::connect(QLineEdit*&, void (QLineEdit::*)(const QString&), MainWindow* const, MainWindow::MainWindow(QWidget*)::__lambda0)’
     });
      ^

1 个答案:

答案 0 :(得分:0)

如错误消息所示,目标设备在此路径/usr/local/Qt-4.8.7-arm上具有Qt,这表明Qt版本为4.8.7。 Lambda expressions on signal/slot need Qt 5,在Qt 4.8.7上不可用。在目标设备上更新Qt版本,或在目标嵌入式设备上使用的同一版本上进行桌面开发。