• QT---lineEdit相关信号


    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);
    
  • 相关阅读:
    Win10系统C++调用OpenCV实现网络摄像头录像和抓拍图片
    springboot+vue【前后端分离】博客项目(已部署、大家可以来玩玩)
    【web-攻击逻辑设计缺陷】(8.4)设计缺陷+避免逻辑缺陷:搜索功能、调试信息功能、竞态(反常现象)
    28 【事件传播】
    grafana9配置邮箱告警
    3大经典分布式存储算法
    postman接收后端返回的文件流并自动下载
    516 最长回文子序列(区间DP)(灵神笔记)
    [附源码]Python计算机毕业设计Django环境保护宣传网站
    Hive3第二章:简单交互
  • 原文地址:https://blog.csdn.net/qq_23136415/article/details/140313517