1.returnPressed信号
connect(ui.lineEdit_passWord, &QLineEdit::returnPressed, [=]() { // 输入密码回车后,调用校验密码接口
ui.lineEdit_passWord->clearFocus(); //失去焦点
on_param_confirmBtn_clicked();
});
2.输入后失去焦点才获取编辑框内新信息
参考https://blog.csdn.net/strive_spirit/article/details/123423353
ui.stackedWidget->setFocusPolicy(Qt::ClickFocus); // 给lineedit控件父窗体设置焦点策略,一点击空白位置,焦点就会从lineEdit移开
ui.test_lineEdit_mTarget->installEventFilter(this); // 注册给要监控焦点的控件注册事件
// FocusOut 焦点离开 FocusIn焦点来
bool ClearCorner::eventFilter(QObject* watched, QEvent* event) {
// todo 获取修改的信息并写入PLC中
if (watched == ui.test_lineEdit_mTarget && event->type() == QEvent::FocusOut)
{
outPutMsg(QtDebugMsg, "ClearCorner::eventFilter test_lineEdit_mTarget event->type() = " + QString::number(event->type(), 10));
ui.test_lineEdit_mTarget->clearFocus();
ui.test_lineEdit_mTarget->text();
// todo
}
else if (watched == ui.test_lineEdit_sectionBarHeight && event->type() == QEvent::FocusOut)
{
outPutMsg(QtDebugMsg, "ClearCorner::eventFilter test_lineEdit_sectionBarHeight event->type() = " + QString::number(event->type(), 10));
ui.test_lineEdit_sectionBarHeight->clearFocus();
ui.test_lineEdit_sectionBarHeight->text();
// todo
}
else if (watched == ui.test_lineEdit_sectionBarWidth && event->type() == QEvent::FocusOut)
{
outPutMsg(QtDebugMsg, "ClearCorner::eventFilter test_lineEdit_sectionBarWidth event->type() = " + QString::number(event->type(), 10));
ui.test_lineEdit_sectionBarWidth->clearFocus();
ui.test_lineEdit_sectionBarWidth->text();
// todo
}
else if (watched == ui.test_lineEdit_formWidth && event->type() == QEvent::FocusOut)
{
outPutMsg(QtDebugMsg, "ClearCorner::eventFilter test_lineEdit_formWidth event->type() = " + QString::number(event->type(), 10));
ui.test_lineEdit_formWidth->clearFocus();
ui.test_lineEdit_formWidth->text();
// todo
}
else if (watched == ui.test_lineEdit_formLen && event->type() == QEvent::FocusOut)
{
outPutMsg(QtDebugMsg, "ClearCorner::eventFilter test_lineEdit_formLen event->type() = " + QString::number(event->type(), 10));
ui.test_lineEdit_formLen->clearFocus();
ui.test_lineEdit_formLen->text();
// todo
}
return QObject::eventFilter(watched, event);
}
3.textChanged信号 --个人不推荐,只要有变化就会触发,可能会有不停发然后卡死情况
connect(ui.auto_lineEdit_workTotal, &QLineEdit::textChanged, this, &WeldTool::onAutoWorkTotalTextChanged);