常见的QT事件有很多,例如:
键盘事件: 按键按下和松开;
鼠标事件: 鼠标移动,鼠标按键的按下和松开.,双击;
拖放事件: 用鼠标进行拖放;滚轮事件: 鼠标滚轮滚动;
绘屏事件: 重绘屏幕的某些部分;
定时事件: 定时器到时触发;
焦点事件: 键盘焦点移动;
进入和离开事件: 鼠标移入widget之内,或是移出;
移动事件: widget的位置改变;
大小改变事件: widget的大小改变;
显示和隐藏事件: widget显示和隐藏;
窗口事件: 窗口是否为当前窗口;
socket事件,剪贴板事件,字体改变,布局改变等等.
这里主要通过三个示例来描述事件过滤器、事件重载和焦点事件,也是经常会用到的东西。
1、事件过滤器
QT提供了事件过滤器来在一个部件中监控其他多个部件的事件。事件过滤器与其他部件不同,它不是一个类,只是由两个函数组成的一种操作,来完成一个部件对其他部件的事件的监视。这两个函数是installEventFilter()函数和eventFilter()函数,都是Object类中的函数。
示例:
.h文件添加代码:
bool eventFilter(QObject *, QEvent *);
.cpp文件添加代码:
在构造函数中添加代码:
ui->register_lbl->installEventFilter(this); //为register_lbl在窗口上安装过滤器
下面实现eventFilter()函数,这里实现了通过点击一个label来弹出相