2

我对 Qt 事件的一般用法有一些疑问。我是 Qt 的新手,我将尝试制作一个自定义事件。我问的问题与这篇文章有关:Qt 4.8: The Event System

  • 什么时候“发生”事件?
    在 Qt 的内置事件中,鼠标点击和按键被放入队列中,然后在下一帧执行函数。对于自定义事件,我特别想知道这一点,因为我不确定它是否总是在单击鼠标时发生。对于自定义事件,是不是将事件发送到队列中,然后等待下一帧的 event() 函数处理?

  • 要创建自定义事件,是否必须创建一个继承自 QEvent 的类并使用 registerEventType() 函数注册事件?
    这是标准流程,还是一个事件可以简单地成为一个类?这个函数 registerEventType() 是如何工作的?

  • 自定义事件有 QEvent::Type 吗?
    这是使用 registerEventType() 函数时给出的 1000 到 6563 之间的数字吗?

  • 事件的接收者是什么?
    它似乎在函数的参数中,如 postEvent()、sendEvent() 等。但是,我不确定这个对象的用途。

  • 触发事件时执行的实际代码在哪里?
    它是一个函数,还是在QObjects的event()函数中。


此外,任何 Qt 事件(内置或自定义)的工作示例都会有所帮助。

4

1 回答 1

0

您应该在线或在 QtSDK 中查看 Qt示例,其中有很多。海事组织你没有努力搜索。

广告1。它发生在你用 QApplication::postEvent() 或 QApplication::sendEvent() 触发它之后。当然不是立即,因为它必须通过主循环等。不过,应该保留事件的顺序。

广告 2。看看这个,第二个回答者。

广告 3。转到 Ad.2。

广告 4。此对象将在 QObject::customEvent() 处理程序中接收此自定义事件。

广告 5。转到 Ad.4。

于 2012-09-23T09:26:47.573 回答