• 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);
    
  • 相关阅读:
    Blazor入门-连接MySQL的简单例子:列出数据+简单查询
    区块链论文速读A会-ATC 2024 如何降低以太坊存档节点的存储要求?
    FreeRTOS 事件标志组 详解
    【TypeScript】深入学习TypeScript函数
    notion database 必知必会
    Redis入门 看这一篇就够了
    C++问题:在共享库 clang 中创建入口点时未定义的引用
    maven Could not resolve dependencies for project xxx:jar 错误原因及解决方案
    基于jquery 实现导航条高亮显示的两种方法
    Cards
  • 原文地址:https://blog.csdn.net/qq_23136415/article/details/140313517