首先来说说为什么要设置焦点吧。

设置焦点可以让应用更便捷。比如当你打开百度主页或其他带有编辑框的页面时,不需要先用鼠标点击编辑框就可以直接输入文字等信息到其中。这就是由于搜索框设置了焦点。

一个空间要先设置它焦点事件的模式,即窗口如何接受焦点事件(通过鼠标单击、Tab键、不接受焦点事件等)

void

setFocusPolicy ( Qt::FocusPolicy policy )

设置获得焦点的方式

Constant Value Description
Qt::TabFocus 0x1 通过Tab键获得焦点
Qt::ClickFocus 0x2 通过被单击获得焦点
Qt::StrongFocus TabFocus | ClickFocus | 0x8 可通过上面两种方式获得焦点
Qt::WheelFocus StrongFocus | 0x4 类似Qt::StrongFocus只不过再加上鼠标滑轮
Qt::NoFocus 0 不能通过上两种方式获得焦点(默认值),setFocus仍可使其获得焦点.

当前有焦点事件的窗口只能有一个,当一个窗口获取焦点事件或失去焦点事件时,可能需要相应的操作,或者如

何判断一个才窗口有没有焦点事件。Qt中亦有相应的函数。

void QWidget::focusInEvent ( QFocusEvent * event ) [virtual protected]

void QWidget::focusOutEvent ( QFocusEvent * event ) [virtual protected]

这两个就是窗口获取或失去焦点事件的函数,需要我们重写(好多窗口都是从QWidget继承这两个函数的)

bool hasFocus () const

这个函数就是判断当前窗口有没有焦点事件的,返回布尔值。

void QWidget::setFocus ( Qt::FocusReason reason )

void QWidget::clearFocus ()

这两个函数就是设置或清除焦点事件的。

Constant Value Description
Qt::TabFocus 0x1 the widget accepts focus by tabbing.
Qt::ClickFocus 0x2 the widget accepts focus by clicking.
Qt::StrongFocus TabFocus | ClickFocus | 0x8 the widget accepts focus by both tabbing and clicking. On Mac OS X this will also be indicate that the widget accepts tab focus when in 'Text/List focus mode'.
Qt::WheelFocus StrongFocus | 0x4 like Qt::StrongFocus plus the widget accepts focus by using the mouse wheel.
Qt::NoFocus 0 the widget does not accept focus.

Qt焦点事件 setFocusPolicy相关推荐

  1. Qt QTableView焦点事件

    开发过程中发现,在QTableView获得焦点时,按键无法响应,经过几番分析查找发现,QTableVew位于子窗口中,而且其本身会接受按键事件.因此在QTableView获得焦点时,按键点击并不会触发 ...

  2. Qt获得和失去焦点事件(Focus事件)

    Qt获得和失去焦点事件(Focus事件) 1.重写控件的focusInEvent()和focusOutEvent()函数 针对一个窗口上的多个可编辑控件(比如QLineEdit.QTextEdit等) ...

  3. QT的事件分发、事件过滤器详解

    一.事件的流向 QT的各种控件(QObject的子类)都有事件处理成员函数,例如: bool QObject::event(QEvent *e);//所有事件 dragEnterEvent(QDrag ...

  4. QT中事件及事件处理

    QT中事件及事件处理 什么是事件,事件与Qt中信号的区别? 个人所见: 事件是应用程序对内部或者外部的动作的统称. 信号是事件的后续响应通知 例如你点击了一个按钮,物理上的鼠标点击动作就是事件,而程序 ...

  5. QLineEdit的焦点事件

    文章目录 前言 焦点事件 QLineEdit焦点事件测试 使用事件过滤器的方式 重写QLineEdit的方式 操作系统对于焦点事件的影响 结论 前言 在项目中,遇到了在通过焦点事件调用系统输入法显示异 ...

  6. QT中事件与图形处理详细(鼠标、键盘、定时等事件与图片加载处理)

    QT事件 简介:QT程序是事件驱动的,程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下和松开鼠标 ...

  7. 网页失去焦点事件 visibilitychange

    当网页失去焦点事件时会触发 visibilitychange 事件,可进行相关逻辑处理 如失去焦点需暂停播放 或 变更title吸引用户回来.. eg: <script>document. ...

  8. DIV焦点事件详解 --【focus和tabIndex】​

    添加 tabindex='-1' 属性: 默认:获取不到焦点事件(blur) 1 <div class="wl-product" id="wl-product&qu ...

  9. 8.QT的事件循环与事件发送相关类

    一.QT的事件发送类QCoreApplication QT使用QCoreApplication类为Qt程序提供了事件循环机制.该类继承QObject.QCoreApplication包含主事件循环,来 ...

最新文章

  1. 【错误记录】Kotlin 编译报错 ( Class ‘Xxx‘ is not abstract and does not implement abstract member )
  2. 科大星云诗社动态20210331
  3. 限制连接数上涨的几个关键因素
  4. Linux决心书/李世超
  5. 安装mariadb、安装Apache
  6. pom添加mysql依赖tomcat崩溃_Spring Boot + Mybatis + Spring MVC环境配置(一) :Spring Boot初始化,依赖添加...
  7. 配置 IPsec *** and Internet Using Split Tunneling
  8. php js的视频教程,【JS视频教程推荐】2021年最值得推荐的5个JavaScript视频教程
  9. a卡 n卡 html5性能,a卡n卡天梯图_a卡n卡显卡性能对照表2020年5月
  10. Stata: 协整还是伪回归?
  11. php快捷方式 图标ie,pubwin删除IE快捷方式并自行创建IE快捷方式的问题解决方法...
  12. 深圳买学区房要注意事项有哪些
  13. 推荐算法(一)——音乐歌单智能推荐
  14. spark 实现K-means算法
  15. python 获取图像亮度和锐度_python增加图像对比度的方法
  16. iQQ 学习笔记1 :登录、验证码、收消息
  17. Linux中的TTY是什么意思
  18. CentOS安装Elasticsearch_IK分词器拼音分词器_部署kibana_部署es集群
  19. 谷歌浏览器打开或者关闭自动翻译
  20. matlab中归一化到[0,1]的函数mapminmax使用

热门文章

  1. maya中英文对照_Maya 2018 英汉速查手册
  2. 为即将的工作做准备~
  3. 上市公司杰创智能携手甄云,启动供应链采购数字化升级
  4. 自动锁定计算机快捷键,教你电脑锁屏怎么设置,让电脑自动锁屏
  5. 羊是如何侵略狼的(看后很有感触)
  6. Ubuntu打开WPS ofifice卡顿、无法进行编辑操作解决办法
  7. 回顾大一|我们要做的是提前准备,而不是提前焦虑
  8. 头歌平台(EduCoder)————数据挖掘算法原理与实践:决策树
  9. Debian dns设置
  10. python数据分析师 前景_数据分析师的前景怎么样? 本人是程序员,最近对数据分析有兴趣……...