首页 > 其他分享 >QT中lineEdit和textEdit通过enter按键发送数据的操作方法

QT中lineEdit和textEdit通过enter按键发送数据的操作方法

时间:2022-09-28 12:12:35浏览次数:63  
标签:slot fun QT textEdit ui enter 发送数据 lineEdit MainWindow

在调节电机PID参数过程中需要通过enter按键发送lineEdit和textEdit中的内容。这里介绍一种如何通过enter按键发送lineEdit和textEdit的数据,同样也可以通过按键发送。

lineEdit有自带的 returnPressed()消息,textEdit使用事件过滤器的方法。

在ui界面放置一个lineEdit,两个textEdit,一个用于发送,一个用于接收。

光标放到lineEdit中,按下enter按键,可以将lineEdit中内容复制到接收框中,按下按键1同样也可以实现将lineEdit中内容复制到接收框中。

光标放到textEdit_send中,按下enter按键,可以将textEdit_send中内容复制到接收框中,按下按键2同样也可以实现将textEdit_send中内容复制到接收框中。

 

 

 mainwindow.h  文件如下

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;


public slots:
    void pushButton_1_clicked_slot_fun();
    void pushButton_2_clicked_slot_fun();

    void lineEdit_returnPressed_slot_fun()  ;

protected :
    bool eventFilter(QObject *target, QEvent *event);//事件过滤器

};
#endif // MAINWINDOW_H

mainwindow.cpp文件如下

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QEvent>
#include <QKeyEvent>
#include <iostream>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);


   connect(ui->pushButton_1,SIGNAL(clicked()),this,SLOT(pushButton_1_clicked_slot_fun()));
   connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(pushButton_2_clicked_slot_fun()));



   connect(ui->lineEdit, SIGNAL(returnPressed()),this, SLOT(lineEdit_returnPressed_slot_fun()));  //自带的按下enter键后的信号

   ui->textEdit_send->installEventFilter(this);//在对象上安装事件过滤器,调用对象的installEventFilter(QObject *)方法来安装事件过滤器,
                                               //设置完后自动调用其eventFilter函数

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow :: pushButton_1_clicked_slot_fun()
{
    QString str = ui->lineEdit->text();
    ui->textEdit_rec->append(str);
    ui->textEdit_rec->append("按键1");
}


void MainWindow :: pushButton_2_clicked_slot_fun()
{
    QString str = ui->textEdit_send->toPlainText();

    ui->textEdit_rec->append(str);
    ui->textEdit_rec->append("按键2");
}



void MainWindow :: lineEdit_returnPressed_slot_fun()
{
    QString str = ui->lineEdit->text();

    qDebug()<<"Enter clicked";

    ui->textEdit_rec->append(str);


}


bool MainWindow::eventFilter(QObject *target, QEvent *event)
 {
     if(target == ui->textEdit_send)
     {
         if(event->type() == QEvent::KeyPress)//按键按下
         {
              QKeyEvent *k = static_cast < QKeyEvent*>(event);
              if(k->key() == Qt::Key_Return   || k->key() == Qt::Key_Enter )
              {
                  qDebug()<<"eventFilter Enter clicked";
                  pushButton_2_clicked_slot_fun();
                  return true;
              }
         }
     }



     return QWidget::eventFilter(target,event);
}
实现结果如图所示:

 

标签:slot,fun,QT,textEdit,ui,enter,发送数据,lineEdit,MainWindow
From: https://www.cnblogs.com/zp-zz-ztx-6742/p/16737543.html

相关文章

  • 工业智能网关BL110实现西门子S7-200SMART PLC接入金鸽MQTT云平台
    COM口采集西门子S7-200SMARTPLC的配置工业智能网关一共有四个COM接口,4个COM口的配置内容一样,COM1固定为RS232,COM2、COM3和COM4是RS232/RS485可选串口(默认为RS485)。因S7-20......
  • 基于QT实现的RPG连连看
    基于QT实现的RPG连连看QLink(连连看)在连连看游戏中,会有⼀个地图,地图上有许多不同种类的⽅块,通过将相同种类的两个⽅块相连,可以将这两个⽅块消除,⽤户获得分数。在整个连......
  • 如何从官网下载QT5开源版离线安装包
    一、浏览器访问qt官网地址https://www.qt.io二、点击DevelopmentTools三、点击DownloadQt四、点击Goopensource五、点击DownloadtheQtOnlineInst......
  • Qt实战15.构建网络拓扑图
    1需求描述基于Qt图形视图框架开发一个网络拓扑模块,用于可视化展示、控制HUB(类似于交换机)与NODE(类似于连接到交换机上的设备)的关系网路。2设计思路先来看个图:这里将......
  • Qt-工程打开后,编译提示“error: member access into incomplete type 'Ui::MainWindow
    问题现象:之前程序都是可以正常运行的,编译也没有错误提示。今天打开工程后,提示“error:memberaccessintoincompletetype'Ui::MainWindow'”问题原因:原因:访问到不完整......
  • QT——qss对多个控件设置想同样式
    QToolButton#minBtn:hover,QToolButton#maxBtn:hover,QToolButton#restoreBtn:hover{background:rgb(255,255,255);}QToolButton#minBtn:pressed,QToolBut......
  • Qt Table Widget常用操作 添加复选框控件
    QtTableWidget常用操作一、鼠标悬浮在item上显示提示信息 1、在构造函数开启tableWidget控件的鼠标捕获功能//开启鼠标捕获功能(实现tablewidget的悬浮功能)......
  • 一文入门Qt Quick
    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16733091.html初识QtQuick很高兴可以来到这一章,终于可以开始......
  • MQTTX_测试调用
    1、软件下载链接:https://pan.baidu.com/s/1I4gJvY9bNWmAe4zGXSS_ow 提取码:a3rl2、切换语言 3、填写连接信息 4、订阅 ......
  • mqtt的使用
    1.mqttws31.js/********************************************************************************Copyright(c)2013IBMCorp.**Allrightsreserved.This......