不二如是 发表于 2016-10-14 10:49:08

82-Qt'日'常事件(QEvent)-【扫盲】

本帖最后由 不二如是 于 2016-10-23 15:56 编辑



Qt中,事件作为一个对象,继承自QEvent类。常见的事件有:

键盘事件QKeyEvent、鼠标事件QMouseEvent、定时器事件QTimerEvent、关闭事件QCloseEvent、输入事件QInputEvent等

事件官方定义是这样的:

The QEvent class is the base class of all event classes. Event objects contain event parameters.

Qt's main event loop (QCoreApplication::exec()) fetches native window system events from the event queue, translates them into QEvents, and sends the translated events to QObjects.

In general, events come from the underlying window system (spontaneous() returns true), but it is also possible to manually send events using QCoreApplication::sendEvent() and QCoreApplication::postEvent() (spontaneous() returns false).

。。。

好吧,其实就是这个意思:

对各种应用程序需要知道的。由应用程序内部或者外部产生的事件或者动作的通称。

Qt中使用一个对象表示一个事件,继承自QEvent类。

需要说明下:

事件与信号不!!!

比如单机下界面上的Btn按钮,那么就会产生QMouseEvent事件,这个事件不是由按钮产生的。

而是因为按钮被按下,会发出clicked()单击信号,这个是由按钮产生的。

一般情况下,我们只关注按钮的单击信号(clicked()),而不考虑鼠标事件。

这是Qt已经封装好的按钮部件。

而如果你要自己设计一个’按钮‘

或者想让单击按钮时触发别的效果,那么就要关心鼠标事件了。

可以看到,事件与信号是两个不同层面的东西,发出着不同,作用也不同。

到现在为止,我们遇到的就是之前讲的拖放事件,想复习,点我就好了~

嗯,就酱~
页: [1]
查看完整版本: 82-Qt'日'常事件(QEvent)-【扫盲】