Qt:键盘事件和鼠标事件、定时器小实例

目录

引言:

一、键盘事件

 二、鼠标事件

 三、定时器小实例

 四、总结

引言:

QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。

  常见的QT事件类型如下:

     键盘事件: 按键按下和松开

     鼠标事件: 鼠标移动,鼠标按键的按下和松开

     拖放事件: 用鼠标进行拖放

     滚轮事件: 鼠标滚轮滚动

     绘屏事件: 重绘屏幕的某些部分

     定时事件: 定时器到时

     焦点事件: 键盘焦点移动

     进入和离开事件: 鼠标移入widget之内,或是移出

     移动事件: widget的位置改变

     大小改变事件: widget的大小改变

     显示和隐藏事件: widget显示和隐藏

     窗口事件: 窗口是否为当前窗口

   QT将系统产生的消息转化为QT事件,QT事件被封装为对象,所有的QT事件均继承抽象类QEvent,用于描述程序内部或外部发生的动作,任意的QObject对象都具备处理QT事件的能力。

一、键盘事件

头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

#include <QDebug>
#include <QCloseEvent>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QTimerEvent>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT
public:
    int nIdFast;
    int nIdSlow;
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
public:
    //void closeEvent(QCloseEvent *event);
    void keyPressEvent(QKeyEvent *event);
    //void mousePressEvent(QMouseEvent *event);
    //void timerEvent(QTimerEvent * event);
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //ui->pushButton->setText("close");
    //ui->label->setText("哈哈");
    nIdSlow = startTimer(1000);
    nIdFast = startTimer(500);

    //QObject::connect(ui->pushButton,&QPushButton::clicked,this,&QWidget::close);
    QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(clos
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值