Qt事件处理
来源:互联网 发布:sql 查询 select like 编辑:程序博客网 时间:2024/05/28 16:04
Qt事件处理
基本方法
由细到粗排序如下
1. 重载特定事件处理函数
最常见的事件处理办法就是重载象mousePressEvent(), keyPressEvent(), paintEvent() 这样的特定事件处理函数.
2. 重载event()函数
通过重载event()函数,我们可以在事件被特定的事件处理函数处理之前(象keyPressEvent())处理它. 比如, 当我们想改变tab键的默认动作时,一般要重载这个函数. 在处理一些不常见的事件(比如:LayoutDirectionChange)时,evnet()也很有用,因为这些函数没有相应的特定事件处理函数. 当我们重载event()函数时, 需要调用父类的event()函数来处理我们不需要处理或是不清楚如何处理的事件.
3. 在Qt对象上安装事件过滤器
安装事件过滤器有两个步骤: (假设要用A来监视过滤B的事件)
首先调用B的installEventFilter( const QOject *obj ), 以A的指针作为参数. 这样所有发往B的事件都将先由A的eventFilter()处理.然后, A要重载QObject::eventFilter()函数, 在eventFilter() 中书写对事件进行处理的代码.
4. 给QAppliction对象安装事件过滤器
一旦我们给qApp(每个程序中唯一的QApplication对象)装上过滤器,那么所有的事件在发往任何其他的过滤器时,都要先经过当前这个 eventFilter(). 在debug的时候,这个办法就非常有用, 也常常被用来处理失效了的widget的鼠标事件,通常这些事件会被QApplication::notify()丢掉. ( 在QApplication::notify() 中, 是先调用qApp的过滤器, 再对事件进行分析, 以决定是否合并或丢弃)
5. 继承QApplication类,并重载notify()函数
Qt 是用QApplication::notify()函数来分发事件的.想要在任何事件过滤器查看任何事件之前先得到这些事件,重载这个函数是唯一的办法. 通常来说事件过滤器更好用一些, 因为不需要去继承QApplication类. 而且可以给QApplication对象安装任意个数的事
- qt中的事件处理
- QT 事件处理
- Qt事件处理机制
- QT事件处理
- Qt事件处理机制
- Qt事件处理机制
- qt 双击事件处理
- Qt事件处理
- qt事件处理
- Qt:事件处理
- QT 事件处理
- Qt 事件处理
- Qt 事件处理 快捷键
- Qt事件处理机制
- Qt Focus 事件处理
- Qt事件处理
- qt事件处理机制
- Qt事件处理摘录
- 马云:阿里巴巴必须成为国家和世界创新的发动机
- Github上Python超越Java,应届人工智能程序员年薪30w+
- Version 1.4.2_03 of the JVM is not suitable for this product. Version:1.6 or greater is required.
- Unsafe与CAS
- 使用IntelliJ IDEA 配置Maven(入门)
- Qt事件处理
- RSA加密密码错误PBE SecretKeyFactory not available
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- c++ 获取软件版本信息
- 2018世界十大技术发展趋势:AI成为基础、从云到边缘概念兴起
- vuejs及相关工具介绍
- LA 4513 Stammering Aliens(字符串hash)
- 模板:强连通分量和缩点
- Android Toolbar样式定制详解