事件是应用程序内部或者外部产生的事情或者动作的统称。在 Qt 中使用⼀个对象来表示⼀个事件。所有的 Qt 事件均继承于抽象类 QEvent
。
事件是由系统或者 Qt 平台本⾝在不同的时刻发出的。⼀些事件是在用户操作时发出,如键盘事件、鼠标事件等,另⼀些事件则是由系统自动发出,如定时器事件。常见的 Qt 事件如下:
-
QMouseEvent 鼠标事件
-
QKeyEvent 键盘事件
Qt在上级控件中定义了一些事件处理函数,这是一些虚函数,如(例如 QObject::event()
、QWidget::mousePressEvent()
)。对象通过继承上级基类,并重写事件处理函数来处理事件。
事件与信号槽机制
信号槽实际上是Qt为了方便事件处理的实现,抽象出来的一种机制,也就是说事件是信号槽的底层实现,我们在开发中往往使用信号槽居多,事件机制适用于更底层,更贴近系统层面的事件处理。