文档章节

Qt之旅---05 鼠标事件 和键盘事件

OSC_JSON
 OSC_JSON
发布于 2018/05/23 21:16
字数 242
阅读 7
收藏 0

#include <QMouseEvent> //  鼠标事件
#include <QKeyEvent>//键盘事件

   void mousePressEvent(QMouseEvent *event);//弹起事件

    void keyPressEvent(QKeyEvent *event);//按键事件事件

将头文件添加到指定*.h  然后重定义 指定方法  之后再*.cpp中实现

如下  :

mainwindow.h

 

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMouseEvent>
#include <QKeyEvent>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
    void mousePressEvent(QMouseEvent *event);
    void keyPressEvent(QKeyEvent *event);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

 

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

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
};
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::mousePressEvent(QMouseEvent *event){

    ui->pushButton->setText(tr("%1 ,%2").arg(event->x()).arg(event->y()));
}

void MainWindow::keyPressEvent(QKeyEvent *event){

  int x=ui->pushButton->x();
  int y=ui->pushButton->y();
  switch (event->key()) {
  case Qt::Key_W:
      ui->pushButton_2->setText(tr("W"));
      ui->pushButton->move(x,y-10);
      break;
  case Qt::Key_S:
      ui->pushButton_2->setText(tr("S"));
      ui->pushButton->move(x,y+10);
      break;
  case Qt::Key_A:
      ui->pushButton_2->setText(tr("A"));
      ui->pushButton->move(x-10,y);
      break;
  case Qt::Key_D:
      ui->pushButton_2->setText(tr("W"));
      ui->pushButton->move(x+10,y);
      break;
  default:
      break;
  }
}

 

demo14路径:https://gitee.com/codemaner/qt_learning_record

© 著作权归作者所有

OSC_JSON
粉丝 0
博文 34
码字总数 13195
作品 0
贵阳
程序员
私信 提问
QT开发(六)—— 鼠标,键盘事件

我们可以在QT中监听鼠标的各种事件和键盘的各种事件,在QT中,他已经为我们实现了这一系列的功能了,这个我们可以参考QEvent等事件类了,我这里就做一些简单的实际操作来带领大家认识一下这些...

qq_26787115
2018/04/18
0
0
【SylixOS】QT-QWS流程介绍

QWS简介 QWS(QT Windows System)是QT自行开发的窗口系统,体系结构类似X Windows的C/S结构。QWS Server在物理设备上显示,QWS Client实现界面,两者通过socket进行彼此的通讯。在很多嵌入式系...

suokin
2018/09/26
13
0
【Qt笔记】事件

事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事...

大道无名
2016/07/30
33
0
【转】QT事件传递与事件过滤器

【概览】 1、重载特定事件函数。 比如: mousePressEvent(),keyPressEvent(), paintEvent() 。 2、重新实现QObject::event()。 这一般用在Qt没有提供该事件的处理函数时。也就是,我们增加...

罗兵
2015/02/08
0
0
Linux全局事件监听技术

应用场景 开发应用程序的过程本质就是通过图形库获得用户的输入事件(鼠标、键盘或者触摸屏等)和数据以后,对这些用户的事件和数据进行处理后,通过界面或其他交互形式展现给用户结果。 应用...

ManateeLazyCat
2017/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部