一、什么是事件
在QT中,事件(Event)是指由特定对象发生的动作或状态变化,通常用于响应用户的操作。事件可以是鼠标点击、键盘输入、窗口移动等用户操作,也可以是系统发出的信号,比如定时器超时、网络数据到达等。在QT中,可以通过连接信号与槽(Signals and Slots)的方式来处理事件,实现相应的功能逻辑。总结来说只要是用户手动操作产生的效果,都是事件。
如果ui上面的没有控件能发送信号,只能重写事件(虚函数),
二、鼠标事件
QT鼠标事件是指在QT框架中对鼠标操作进行处理的事件。mousePressEvent(鼠标按下事件)、mouseReleaseEvent(鼠标释放事件)、mouseMoveEvent(鼠标移动事件)、mouseDoubleClickEvent(鼠标双击事件)等。通过对这些事件进行处理,可以实现相应的功能和交互效果。
代码示例:写了mousePressEvent函数来处理鼠标点击事件。当左键点击时,在label上显示"Left button clicked",当右键点击时,在label上显示"Right button clicked"。
widget.h代码示例
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QMouseEvent>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
protected:
virtual void mousePressEvent(QMouseEvent *event);
}