Qt控件如何响应QEvent
来源:互联网 发布:最好的聊天交友软件 编辑:程序博客网 时间:2024/05/22 01:46
目前找到一种有效方法:
1.在窗体上为lineEdit安装过滤器
ui.lineEdit->installEventFilter(this);
2.使用
bool LineEdit_KB::eventFilter(QObject *watched, QEvent *event)
{
//首先判断控件(这里指 lineEdit)
if ( watched == ui.lineEdit )
{
//然后再判断控件的具体事件 (这里指获得焦点事件)
if ( event->type() == QEvent::FocusIn )
{
openKB();
}
// lineEdit控件失去焦点的事件,当Keyboard_Big点击关闭时发送过来的。
else if ( event->type()==QEvent::FocusOut )
{
ui.lineEdit->clearFocus();
}
}
// 最后将事件交给上层对话框
return QWidget::eventFilter(watched,event);
}
3. eventFilter()函数可以接收sendEvent()发送过来的事件
说明:Keyboard_Big是LineEdit_KB的子控件
void Keyboard_Big::on_toolButton_Close_clicked()
{
//若父窗口的当前获得焦点的控件是lineEdit,则使其失去焦点,否则一直会显示键盘,无法关闭键盘。
if ( m_pParent != NULL )
{
QEvent event(QEvent::FocusOut);
QApplication::sendEvent(m_pParent->focusWidget(), &event);
}
close();
}
- Qt控件如何响应QEvent
- Qt的QEvent::accept()和QEvent::ignore()
- 【引用】qt QEvent paintEvent
- Qt中的QEvent简例
- Qt 基础:QEvent
- Qt之QEvent
- Qt之QEvent
- Qt事件类 QEvent
- Qevent
- Qevent
- Qevent
- Qevent
- QEvent
- Qt中QEvent的过滤和分发
- qt鼠标如何控制和响应
- QT类 Qevent事件处理过程 事件过滤器
- QT类 Qevent事件处理过程 事件过滤器
- Qt模块化笔记之core——事件QEvent
- p-namespace
- HTML 基础控件介绍
- .NET开发不可错过的25款必备工具
- IOS开发语言Swift入门连载---方法
- 算法复习--------------二维数组
- Qt控件如何响应QEvent
- ORACLE操作表时弹出提示框:”资源正忙,需指定nowait"的解锁方法
- IM(INSTANTMESSAGING) 服务器的架构相关文章
- TCP三次握手中SYN,ACK,Seq三者的关系
- 项目使用到的组件
- 2.30
- linux下USB驱动移植
- 第7周项目1(3)
- 详解Bellman-Ford