链接:https://pan.baidu.com/s/1Rq8PQRV1liuIXML0JKOX_Q?pwd=1688
提取码:1688
事情:事件由窗口系统或Qt自身产生。用以响应各种行为或情况。比如:鼠标点击,鼠标移动到窗口上,键盘输入键值,窗口大小的变换,按键被点击的动作等等。
事件处理过程:
1.在Qt内部,Qt通过QApplication::exec()启动的主事件循环不停的抓取事件队列中的事件。
2.然后将事件转换成对应的QEvent对象
3.通过调用QObject类的event()函数将这个事件类型调用相应的事件处理器如:mounsePressEvent();keyPressEvent();paintEvent()等;
实现方法:
通过虚函数的机制使得我们可以让事件在处理时调用到自定义的事件处理函数;重新实现这些事件函数。实现函数要遵循虚函数的语法规则,自定义的类中保证函数名、参数的一致性;
//*****************构造函数************************
this->setMouseTracking(true);//设置鼠标轨迹,不设置要显示移动坐标必须选中才能显示
ui->label->setMouseTracking(true);
//设置label也显示鼠标轨迹,不设置则移动到label上就不会显示坐标
//**************************************************
QEvent
//***************************************************
void enterEvent(QEvent *);进入事件
void leaveEvent(QEvent *);离开事件
//***************************************************
QMousePressEvent(鼠标按下)
//**************************************************
类中声明虚函数:包含头文件#include <QMouseEvent>
protected:
void mousePressEvent(QMouseEvent *); //虚函数,鼠标按下
在类外定义:
void event::mousePressEvent(QMouseEvent * t) //鼠标按下
{
int x = t->x(); //获得点击widget的坐标x位置
int y = t->y(); //获得点击widget的坐标y位置