当我使用 Connect signal and slots 时出现这个部署错误
This deplyment error occurs when I use Connect signal and slots
当我在桌面上这样执行时它工作正常但是当尝试在远程设备上部署时出现错误。
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)’
});
^
如错误消息所示,您的目标设备在此路径 /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 版本,或者在您的目标嵌入式设备上使用的相同版本上进行桌面开发。
当我在桌面上这样执行时它工作正常但是当尝试在远程设备上部署时出现错误。
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)’
});
^
如错误消息所示,您的目标设备在此路径 /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 版本,或者在您的目标嵌入式设备上使用的相同版本上进行桌面开发。