qevent accept()和ignore() 函数
来源:互联网 发布:cf你的网络存在异常 编辑:程序博客网 时间:2024/05/18 02:15
这两个函数accept/ignore的功能,只是设定标记,
一些事件类型可以被传递。这意味着假如目标对象不处理一个事件,Qt会试着寻找另外的事件接收者。用新的目标来调用QApplication::notify()。举例来讲,key事件是传递的,假如拥有焦点的Widget不处理特定键,Qt会分发相同的事件给父widget,然后是父亲的父亲,直到最顶层widget。
那么何时接收该事件,何时忽略呢?
通过accept( )函数和ignore( )函数。
可被传递的事件有一个accept()函数和一个ignore()函数,你可以用它们来告诉Qt,你“接收”或是 “忽略”这个事件。假如事件handler调用accept(),这个事件将不会再被传递。假如事件handler调用 ignore(),Qt会试着查找另外的事件接收者。 像大多数的开发者一样,你可能不会被调用accept()或是ignore()所烦恼。缺省情况下是“接收”,在 QWidget中的缺省实现是调用ignore(),假如你希望接收事件,你需要做的是重新实现事件handler,避免 调用QWidget的实现。假如你想“忽略”事件,只需简单地传递它到QWidget的实现。下面的代码演示了这一点:void MyFancyWidget::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Key_Escape) {
doEscape();
} else {
QWidget::keyPressEvent(event);
}
}
在上面的例子里,假如用户按了"ESC"键,我们会调用doEscape()并且事件被“接收”了(这是缺省的情况), 事件不会被传递到父widget,假如用户按了别的键,则调用QWidget的缺省实现。
void QWidget::keyPressEvent(QKeyEvent *event)
{
event->ignore();
}
应该感谢ignore(),事件会被传递到父widget中去。
0 0
- qevent accept()和ignore() 函数
- QEvent ignore accept()
- qevent 事件的accept()和ignore()
- Qt的QEvent::accept()和QEvent::ignore()
- qevent accpt()和ignore() closeEvent()事件
- qt ignore()和accept()函数
- qt中 accept()和ignore()函数
- (13)accept()和ignore()--事件的处理
- Qt之ignore()和accept()
- QDialog accept()函数 和 QCloseEvent的accept()
- QDialog的accept()函数和reject()函数
- listen函数和accept函数
- listen和accept函数解析
- 使用listen()和accept()函数
- ignore函数
- Qevent
- Qevent
- Qevent
- 北航软件991复试面试题
- Android 插件化之Droid Plugin
- 数学之美——隐含马尔科夫模型
- Android 目录过长造成的error Error:too long on Windows, keep below 240 characters :
- Emacs 移动行和区域move lines and regions with M-n M-p
- qevent accept()和ignore() 函数
- MyBatis实战教程
- /etc/security/limits.conf 设置
- 解决 Android N requires the IDE to be running with Java 1.8 or later
- jquery 动态绑定bind()及模拟鼠标点击A链接
- Lua 第三方插件索引
- 编程之美-Win7下硬盘安装Ubuntu双系统(重新分区)
- qevent accpt()和ignore() closeEvent()事件
- Shell标准输出、标准错误 >/dev/null 2>&1