1.鼠标事件
void mousePressEvent(QMouseEvent *ev) override; //鼠标点击
void mouseReleaseEvent(QMouseEvent *ev) override; //鼠标释放
void mouseMoveEvent(QMouseEvent *ev) override; //鼠标移动
ev->button()为获取当前触发的是什么事件
QMouseEvent 事件 -> Qt::LeftButton: 左键
Qt::RightButton: 右键
Qt::MidButton 中间键
注:事件都是由 protected: 声明的作用在内部
2.键盘事件
void keyPressEvent(QKeyEvent *event) override; //键盘事件
QKeyEvent 事件 -> Qt::Key_A Qt::Key_B ......
3.定时器事件
void timerEvent(QTimerEvent *event) override; //定时器执行回调
startTimer(<周期(ms)>); //定时器启动 返回定时器序号类型为int
killTimer(<startTimer中返回的ID>);
4.事件的接收和忽略
-
Qt中子类的事件是默认不再传递给父窗口的
如果要传递则调用该元件类型的事件函数 如: QPushButton::mousePressEvent(ev);
-
ev->ignore(); //事件传递给上层窗口
5.关闭事件
void closeEvent(QCloseEvent *event) override; //关闭时触发
event->accept(); //处理关闭窗口事件,接收事件,事件不会再向下传递
event->ignore(); //忽略事件,事件继续给父组件传递
6.事件分发
bool event(QEvent *event) override;
返回 true 则停止事件传播