• Qt 如何设置textedit控件按下enter就把消息发出去?


    这里写图片描述
    如图效果:
    上面是一个textBrowser控件,用来显示我发的东西
    下面是一个textedit控件,用来发东西

    所以,这里实现的是在textedit里面输入文字,按下enter之后,文字到上面去了,当然也可以单击“发送”

    ui界面如图:
    这里写图片描述

    代码如下
    widget.h中

     1 #ifndef WIDGET_H
     2 #define WIDGET_H
     3 
     4 #include <QWidget>
     5 
     6 namespace Ui {
     7 class Widget;
     8 }
     9 
    10 class Widget : public QWidget
    11 {
    12     Q_OBJECT
    13 
    14 public:
    15     explicit Widget(QWidget *parent = 0);
    16     ~Widget();
    17 protected:
    18     bool eventFilter(QObject *target, QEvent *event);//事件过滤器
    19 
    20 private slots:
    21     void on_send_clicked();
    22 
    23 private:
    24     Ui::Widget *ui;
    25 };
    26 
    27 #endif // WIDGET_H

    widget.cpp

     1 #include "widget.h"
     2 #include "ui_widget.h"
     3 #include<QKeyEvent>
     4 Widget::Widget(QWidget *parent) :
     5     QWidget(parent),
     6     ui(new Ui::Widget)
     7 {
     8     ui->setupUi(this);
     9     ui->textEdit->setFocusPolicy(Qt::StrongFocus);
    10     ui->textBrowser->setFocusPolicy(Qt::NoFocus);
    11 
    12     ui->textEdit->setFocus();
    13     ui->textEdit->installEventFilter(this);//设置完后自动调用其eventFilter函数
    14 
    15 }
    16 
    17 Widget::~Widget()
    18 {
    19     delete ui;
    20 }
    21 bool Widget::eventFilter(QObject *target, QEvent *event)
    22 {
    23     if(target == ui->textEdit)
    24     {
    25         if(event->type() == QEvent::KeyPress)//回车键
    26         {
    27              QKeyEvent *k = static_cast<QKeyEvent *>(event);
    28              if(k->key() == Qt::Key_Return)
    29              {
    30                  on_send_clicked();
    31                  return true;
    32              }
    33         }
    34     }
    35     return QWidget::eventFilter(target,event);
    36 }
    37 
    38 void Widget::on_send_clicked()
    39 {
    40     QString msg = ui->textEdit->toHtml();
    41     ui->textEdit->clear();
    42     ui->textEdit->setFocus();
    43     ui->textBrowser->append(msg);
    44 
    45 }
  • 相关阅读:
    underscore相关记录
    背包问题
    数学图形(2.26) 3D曲线结
    数学图形(1.41)super spiral超级螺线
    数学图形(2.25)三维悬链线与悬链面
    数学图形(2.24) 帖在圆柱面上的曲线
    数学图形(2.23)Cylindric sine wave柱面正弦曲线
    数学图形(2.22) 帖在圆锥面上的曲线
    数学图形(2.21) 帖在抛物面上的曲线
    数学图形(2.20)3D曲线
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14387695.html
Copyright © 2020-2023  润新知