是否有一种方法来卸载事件过滤器在qt
Is there a way to uninstall eventfilter in qt?
我只需要一段时间的事件过滤器,是否有办法卸载它以后?
请在这里阅读有关事件系统如何在Qt中工作的信息。这对于基本理解是至关重要的,尤其是这一段:
QObject::installEventFilter()函数通过设置一个事件过滤器来实现这一点,使指定的过滤器对象在其QObject::eventFilter()函数中接收目标对象的事件。事件过滤器在目标对象处理事件之前处理事件,允许它根据需要检查和丢弃事件。现有的事件过滤器可以使用QObject::removeEventFilter()函数删除。
阅读后,您可以看到installEventFilter
有一个对应的部分,毫不奇怪,它被称为removeEventFilter
。以下是Qt 5文档:
void QObject::removeEventFilter(QObject * obj)
从该对象中删除事件筛选器对象obj。如果没有安装这样的事件筛选器,请求将被忽略。
当该对象被销毁时,该对象的所有事件过滤器将自动删除。
删除事件过滤器总是安全的,即使在事件过滤器激活期间(即从eventFilter()函数)。
有。这个函数叫做QObject::removeEventFilter
From Qt Docu:
void QObject::removeEventFilter (QObject * obj)
从该对象中删除事件筛选器对象obj。如果没有安装这样的事件筛选器,请求将被忽略。
当该对象被销毁时,该对象的所有事件过滤器将自动删除。
删除事件过滤器总是安全的,即使在事件过滤器激活期间(即从eventFilter()函数)。
相关文章:
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何用RISC-V GD32VF103CBT6开发板卸载精确的ADC过采样
- 无法使用加载库卸载注入的 dll (C++)
- 在事件过滤器之前发出对象的事件
- std::thread 增加 DLL 引用计数,从而防止卸载 DLL
- 为什么有些延迟加载 DLL 会立即使用 FFMPEG 卸载?
- 如何根据 DLL 端的请求卸载 DLL 模块以卸载它?
- Qt:事件过滤器在显示 QCompleter 时不接收按键
- 通知 Windows 系统应用程序字体已被卸载/删除
- Qt 中的去抖动事件过滤器
- QT 事件过滤器 mouseEvent->pos().x() 始终为零,但 mouseEvent->pos().y() 工作正常
- 如何从目标进程卸载 DLL?
- 用于 OpenMP 4.5 卸载到 (GPU) 设备的 NVPTX GCC (9.0.0/trunk) 找不到 libg
- 卸载共享对象(.so 文件)在 C++ 中用 dlopen() 打开
- 按名称问题获取卸载应用程序路径
- 英特尔C++编译器 19.0 测试版中删除了对英特尔®图形技术的卸载支持
- libcoi_device.so.0 未找到英特尔 19.0.4 OpenMP 5.0 卸载编译错误
- MFC-在dll卸载时,扫描我的代码,任何剩余的计时器,事件,线程等
- 是否有一种方法来卸载事件过滤器在qt