【问题标题】:Manual event-handling in Qt/embedded,(without using QApplication:exec() )Qt/embedded 中的手动事件处理(不使用 QApplication:exec() )
【发布时间】:2013-02-17 21:15:26
【问题描述】:

我正在编写一个 Qt/嵌入式 GUI 应用程序。但是应该避免调用 exec(),因为我不想仅在 QWS(Qt 窗口系统)上离开事件处理的责任。相反,如果可以在必要时手动调用事件处理程序(例如 processEvents),这对我来说将是有利的?

【问题讨论】:

  • 不清楚这里的问题是什么。您能否举例说明您正在尝试做的事情以及遇到麻烦的地方?
  • 事件循环基本上是 Qt 的核心。你为什么要阻止它?你想达到什么目的?如果您想过滤掉事件,例如用户事件,有多种方法可以做到这一点。

标签: c++ c linux qt4 linux-kernel


【解决方案1】:

听起来这就是你想要的,来自here

我们可以继承 QApplication 并重新实现 notify()。

Qt 调用 QApplication::notify() 来发送一个事件。重新实现 此函数是在任何事件之前获取所有事件的唯一方法 过滤器有机会查看它们。事件过滤器是 通常更有用,因为可以有任意数量的并发 事件过滤器,但只有一个 notify() 函数。

然后我想你可以在事件进入时缓冲它们,并继承QApplication 来创建一个自定义的processEvents 类函数,以便在需要时将它们发送出去。但正如其他人所指出的,您并不清楚为什么要覆盖 QWS。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多