Qt之Tab键切换焦点顺序
Qt 切换 顺序 tab 焦点
2023-09-11 14:19:16 时间
Qt的窗口部件按用户的习惯来处理键盘焦点。也就是说,其出发点是用户的焦点能定向到任何一个窗口,或者窗口中任何一个部件。
焦点获取方式比较多,例如:鼠标点击、Tab键切换、快捷键、鼠标滚轮等。
习惯性的,我们经常会使用Tab键来控制焦点顺序,比如:用户注册时,个人信息输入框焦点的切换、执行按钮焦点的切换等。
在添加部件之后,默认情况下,Tab键也是可以切换焦点的,
C/C++ Qt Tree与Tab组件实现分页菜单 虽然`TreeWidget`组件可以实现多节点的增删改查,但多节点操作显然很麻烦,在一般的应用场景中基本上只使用一层结构即可解决大部分开发问题,`TreeWidget`组件通常可配合`TabWidget`组件,实现一个类似于树形菜单栏的功能,当用户点击菜单栏中的选项时则会跳转到不同的页面上。
Qt+ECharts开发笔记(五):ECharts的动态排序柱状图介绍、基础使用和Qt封装Demo 上一篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口。 本篇的demo实现了自动排序的柱状图,实现了一个自动排序柱状图的基本交互方式,即Qt调用js脚本操作html。 本篇demo使用Qt定时器方式,实现数据定时刷新自增,并预留出了定时器间隔参数。 像大数据网页常看的人口增长时间图,收入年度增长时间图等都是这一类。
Qt+ECharts开发笔记(四):ECharts的饼图介绍、基础使用和Qt封装百分比图Demo 前一篇介绍了横向柱图图。本篇将介绍基础饼图使用,并将其封装一层Qt。本篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口。
Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件 上一篇已经将himpp套入qt的基础上进行开发。那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤。
Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo 上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍、基础使用,并将其封装一层Qt。 本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt调用js脚本操作html。
Qt的窗口部件按用户的习惯来处理键盘焦点。也就是说,其出发点是用户的焦点能定向到任何一个窗口,或者窗口中任何一个部件。
焦点获取方式比较多,例如:鼠标点击、Tab键切换、快捷键、鼠标滚轮等。
习惯性的,我们经常会使用Tab键来控制焦点顺序,比如:用户注册时,个人信息输入框焦点的切换、执行按钮焦点的切换等。
在添加部件之后,默认情况下,Tab键也是可以切换焦点的,只不过顺序往往和我们预期不一致,所以就需要自行控制了。
下面,以三个按钮和三个输入框为例,按照部件上的文本顺序来设置Tab键切换焦点的顺序,即:1 - 2 - 3 - 4 - 5 - 6。
QPushButton *pButton1 = new QPushButton(this); QPushButton *pButton2 = new QPushButton(this); QPushButton *pButton3 = new QPushButton(this); QLineEdit *pLineEdit1 = new QLineEdit(this); QLineEdit *pLineEdit2 = new QLineEdit(this); QLineEdit *pLineEdit3 = new QLineEdit(this); pButton1- setText("1"); pButton2- setText("3"); pButton3- setText("5"); pLineEdit1- setText("6"); pLineEdit2- setText("4"); pLineEdit3- setText("2"); // 设置焦点切换顺序 QWidget::setTabOrder(pButton1, pLineEdit3); QWidget::setTabOrder(pLineEdit3, pButton2); QWidget::setTabOrder(pButton2, pLineEdit2); QWidget::setTabOrder(pLineEdit2, pButton3); QWidget::setTabOrder(pButton3, pLineEdit1);
如果我们不需要为所有的部件都设置焦点切换,也就是说,只想为一部分部件设置焦点顺序。
那么,可以添加如下代码(注意:上述其它代码不作任何变动):
pButton2- setFocusPolicy(Qt::NoFocus); pLineEdit2- setFocusPolicy(Qt::NoFocus);
Qt::FocusPolicy的作用是为部件设置焦点策略,而Qt::NoFocus可以将策略设置为无焦点。
就这样,简简单单的一个接口解决了我们的问题。有兴趣的小伙伴可以看下focusNextChild。
C/C++ Qt Tree与Tab组件实现分页菜单 虽然`TreeWidget`组件可以实现多节点的增删改查,但多节点操作显然很麻烦,在一般的应用场景中基本上只使用一层结构即可解决大部分开发问题,`TreeWidget`组件通常可配合`TabWidget`组件,实现一个类似于树形菜单栏的功能,当用户点击菜单栏中的选项时则会跳转到不同的页面上。
Qt+ECharts开发笔记(五):ECharts的动态排序柱状图介绍、基础使用和Qt封装Demo 上一篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口。 本篇的demo实现了自动排序的柱状图,实现了一个自动排序柱状图的基本交互方式,即Qt调用js脚本操作html。 本篇demo使用Qt定时器方式,实现数据定时刷新自增,并预留出了定时器间隔参数。 像大数据网页常看的人口增长时间图,收入年度增长时间图等都是这一类。
Qt+ECharts开发笔记(四):ECharts的饼图介绍、基础使用和Qt封装百分比图Demo 前一篇介绍了横向柱图图。本篇将介绍基础饼图使用,并将其封装一层Qt。本篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口。
Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件 上一篇已经将himpp套入qt的基础上进行开发。那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤。
Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo 上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍、基础使用,并将其封装一层Qt。 本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt调用js脚本操作html。
相关文章
- qt创建多层目录_Qt多工程多目录的编译案例
- 适合学习的QT开源项目-SerialTool
- Qt 事件处理机制-qt源码解读
- QT中使用C++ socket通信,socket通信原理三次握手和四次握手详解、客户端与服务端实例详解
- qt 配置的相对路径写法
- 【QT】Qt项目demo:数据在ui界面上显示,鼠标双击可弹窗显示具体信息
- 【QT】Qt Creator生成动态库(DLL)并调用
- 【QT】Qt 中 Json 的操作
- 【QT】Qt creator连接MySQL数据库 - 增删改查
- 【QT】Qt使用QJson生成json文件并保存
- 【QT】Qt 5 的程序:打印文档
- Qt编写地图综合应用24-miniblink内核
- Qt开源作品20-PNG图片警告去除工具
- Qt编写安防视频监控系统13-视频存储
- Qt编写安防视频监控系统1-通道切换
- Qt个人研究进展
- 细数Qt开发的各种坑(欢迎围观)
- qt widget设置Qt::FramelessWindowHint和Qt::WA_TranslucentBackground, 会出现一个bug: 在最小化后还原时界面停止刷新(Qt5.1解决了这个问题。但实际Qt5.7还有这个问题)
- Qt 事件系统浅析 (用 Windows API 描述,分析了QCoreApplication::exec()和QEventLoop::exec的源码)(比起新号槽,事件机制是更高级的抽象,拥有更多特性,比如 accept/ignore,filter,还是实现状态机等高级 API 的基础)
- Qt之QuaZIP(zip压缩/解压缩)
- Qt error:QtThese QT version are inaccessible
- VS2010使用静态编译的qt库(Qt 5)
- 【正点原子FPGA连载】第十章Petalinux构建Qt和OpenCV交叉编译开发环境 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南
- OpenCV2.4.10 Mac Qt Configuration