当前位置: 首页 > news >正文

QML 部件获得焦点触发的全局槽函数 onActiveFocusItemChanged

在qml的window窗口中,假如添加里许多其他部件,当这些部件改变时,会有一个全局部件焦点改变槽函数触发,就是 onActiveFocusItemChanged 

可以通过此槽函数就可以知道当前焦点在哪一个部件上,也可以做一些自动化测试等;

如下案例,在窗体中添加两个按钮,通过鼠标点击按钮或者键盘左右键触发焦点,最后onActiveFocusItemChanged 槽函数就会监听到有焦点事件了,可以通过activeFocusItem.objectName 将当前获得焦点的部件的名字打印出来,前提是部件有设置了名字。

import QtQuick 2.9
import QtQuick.Window 2.2import QtQuick.Controls 2.2Window {visible: truewidth: 640height: 480title: qsTr("Hello World")color: "white"Button {id: btn1width: 50height: 50objectName: "btn1"background: Rectangle {border.color: btn1.focus ? "red" : "black";color: "pink"}// 键盘右键按下Keys.onRightPressed: {btn2.focus = true}}Button {id: btn2x:70width: 50height: 50objectName: "btn2"background: Rectangle {border.color: btn2.focus ? "red" : "black";}// 键盘左键按下Keys.onLeftPressed: {btn1.focus = true}}// 焦点改变触发onActiveFocusItemChanged: {console.log("Active focus item changed", activeFocusItem, "object name:", activeFocusItem.objectName);}
}

http://www.lryc.cn/news/538621.html

相关文章:

  • 【git】工作场景下的 工作区 <-> 暂存区<-> 本地仓库 命令实战 具体案例
  • Python 中从零开始的随机梯度下降
  • 期权隐含波动率是什么意思?
  • python中使用数据库sqlite3
  • JavaScript数组-数组的概念
  • 英语---基础词汇库
  • ASCII 与 Unicode:两种字符编码的定义和不同
  • Linux相关概念和易错知识点(28)(线程控制、Linux下线程的底层)
  • lighten() 函数被弃用:替代方案color.scale()或者color.adjust()
  • 【leetcode】双指针:有效三角形的个数 and 和为s的两个数
  • IDEA通过Contince接入Deepseek
  • grep如何排除多个目录?
  • Elasticsearch 数据建模:从原理到实战的降维打击指南
  • python defaultdict用法
  • Java 与设计模式(15):模板方法模式
  • ubuntu更新失败:apt-get install -f Transaction failed: 软件包系统已损坏
  • 16-使用QtChart创建动态图表:入门指南
  • C++ | 虚函数
  • 单元测试整理
  • Delphi语言的软件工程
  • XSS攻击(跨站脚本攻击)详解与实战
  • 【C++指南】类和对象(十):const成员函数
  • 数值分析与科学计算导引——误差与算法举例
  • ubuntu安装docker 无法拉取问题
  • 【C++项目】Rpc通信框架设计
  • 八股取士--dockerk8s
  • Autojs: 使用 SQLite
  • 思科、华为、H3C常用命令对照表
  • 解决 `pip is configured with locations that require TLS/SSL` 错误
  • 2025-arXiv-OmniThink:通过思考扩展机器写作的知识边界