Qt Quick - ToolTip

Qt Quick - ToolTip使用总结

  • 一、概述
  • 二、附带的ToolTip
  • 三、延迟和超时
  • 四、自定义ToolTip
  • 五、定制化

一、概述

ToolTip 其实就是ToolTip,所谓ToolTip其实就是一段简短的文本,告知用户控件的功能。它通常置于父控件之上或之下。提示文本可以是任何富文本格式的字符串。这个一般是很细节的东西。
在这里插入图片描述

二、附带的ToolTip

ToolTip 为控件设置ToolTip最直接的方法是通过附加属性指定 文本和 可见性。下面的例子演示了鼠标移到按钮里面,这个ToolTip显示的这种方法:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.5

Window {
    id: window
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button {
        text: qsTr("保存")
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.verticalCenter: parent.verticalCenter

		//这个 hovered 其实是这个Button的一些属性
        ToolTip.visible: hovered
        ToolTip.text: qsTr("保存这个项目")
    }

}

在正常情况下,一次只能看到一个ToolTip。为了节省资源,所有使用ToolTip附加属性的项目共享相同的可视化ToolTip标签实例。这个意思就是说每一个控件都可以设置 ToolTip

尽管视觉效果是共享的,但文本、超时和延迟是单独存储的,每个项目都使用各自的附加属性。但是,多个项目不能使共享ToolTip同时可见。共享ToolTip只显示在使其可见的最后一项上。共享ToolTip的位置由框架决定。

三、延迟和超时

ToolTip通常是短暂的,因为它们是在某个外部事件或用户交互后显示的,通常在某个超时后隐藏。在显示ToolTip时可以控制延迟,在隐藏ToolTip时可以控制超时。这使得实现显示和隐藏ToolTip的不同策略成为可能。
例如,在触摸屏上,按下并按住按钮显示ToolTip是一种常见的模式。下面的示例演示了如何延迟显示ToolTip,直到达到按下并保持的间隔。在这个例子中,按钮一松开,ToolTip就会隐藏。

Button {
      text: qsTr("Button")

      ToolTip.visible: pressed
      ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval
      ToolTip.text: qsTr("This tool tip is shown after pressing and holding the button down.")
  }

然而,对于指针设备,可能需要显示一个ToolTip,作为鼠标悬停按钮一段时间的结果。下面的示例演示如何在将按钮悬停一秒钟后显示ToolTip,并在超时五秒钟后隐藏它。

 Button {
      text: qsTr("Button")
      hoverEnabled: true

      ToolTip.delay: 1000
      ToolTip.timeout: 5000
      ToolTip.visible: hovered
      ToolTip.text: qsTr("This tool tip is shown after hovering the button for a second.")
  }

四、自定义ToolTip

如果需要对ToolTip位置进行更细粒度的控制,或者需要同时创建多个ToolTip实例,也可以创建本地ToolTip实例。这样,就可以自定义ToolTip,并且整个弹出式API都是可用的。下面的示例提供了一个ToolTip,在拖动手柄时显示滑块的值。
在这里插入图片描述

  Slider {
      id: slider
      value: 0.5

      ToolTip {
          parent: slider.handle
          visible: slider.pressed
          text: slider.value.toFixed(1)
      }
  }

五、定制化

在这里插入图片描述
ToolTip可以设置contentItem 和

  ToolTip {
      id: control
      text: qsTr("A descriptive tool tip of what the button does")

      contentItem: Text {
          text: control.text
          font: control.font
          color: "#21be2b"
      }

      background: Rectangle {
          border.color: "#21be2b"
      }
  }
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.5

Window {
    id: window
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button {
        id:btn
        text: qsTr("保存")
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.verticalCenter: parent.verticalCenter

        ToolTip {
            id: control
            text: qsTr("按钮的描述信息~~")

            contentItem: Text {
                text: control.text
                font.pixelSize: 14
                color: "#21be2b"
            }

            background: Rectangle {
                border.color: transientParent
            }

            visible: btn.hovered
        }

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/9638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么程序员都喜欢开源的软件?

先来感受一下开源与闭源: 当你觉得这个软件有一个缺点影响使用的时候 如果是闭源软件,你如果不想自己模仿着写一个,就只能考虑顺着网线到开发者脖子上逼着他加 但开源软件你可以自己在他的基础上改一改,你改好了还拿回馈回去让…

动力节点王鹤SpringBoot3笔记——第七章 视图技术Thymeleaf

目录 第七章 视图技术Thymeleaf 前言 7.1 表达式 7.2 if-for 第七章 视图技术Thymeleaf 前言 Thymeleaf 是一个表现层的模板引擎, 一般被使用在 Web 环境中,它可以处理 HTML, XML、 JS 等文档,简单来说,它可以将 JSP 作…

将Mircrosoft Store下载的Ubuntu安装到指定位置方法,同时解决“你需要来自System的权限才能对此文件进行更改”问题

一、概述 最近使用到WIndows的WSL功能,需要安装ubuntu这个子系统进行仿真环境搭建,但是又不愿意使用虚拟机,不太方便。在安装过程中发现本身就岌岌可危的C盘经常突然爆满,经过检查发现是安装ubuntu位置的问题。但是在系统更改存储…

网络安全从业人员应该如何提升自身的web渗透能力?

前言 web 渗透这个东西学起来如果没有头绪和路线的话,是非常烧脑的。 理清 web 渗透学习思路,把自己的学习方案和需要学习的点全部整理,你会发现突然渗透思路就有点眉目了。 程序员之间流行一个词,叫 35 岁危机,&am…

利用多专家模型解决长尾识别任务

来源:投稿 作者:TransforMe 编辑:学姐 贡献 提出了RoutIng Diverse Experts(RIDE),不仅可以减少所有类别的variance,并且还可以减少尾部类的bias。同时提升了头部和尾部的性能。 思路 目前存…

nuxt.js 在IE浏览器||其他浏览不识别document/window 情况处理

1 第一步注册到nuxt.config.js文件 2 第二步建立js 文件 import Vue from vue (function(){ if(process.client){ console.log(process.client) }else{ console.log(process.client) } if (!!window.ActiveXObject || "ActiveXObject" i…

Stable Diffusion:一种新型的深度学习AIGC模型

潜在扩散模型 | AIGC| Diffusion Model 图片感知压缩 | GAN | Stable Diffusion 随着生成型AI技术的能力提升,越来越多的注意力放在了通过AI模型提升研发效率上。业内比较火的AI模型有很多,比如画图神器Midjourney、用途多样的Stable Diffusion&#…

国货之光!打工人必装的8个软件,你都用过没?|办公|效率|创作

给大家分享8款非常强大,但知名度不高的国产软件,每一个都堪称精品,喜欢的话记得点赞和关注哦~ 第一款是 火绒安全软件 火绒安全软件没有任何,具有推广性质的弹窗、没有捆绑打扰用户的行为;占用资源极少,&a…

腾讯空降测试工程师,绩效次次拿S,真是砂纸擦屁股,给我露了一手啊

​上周我们公司的绩效面谈全部结束了,每年到这个时间点就是打绩效的时候了,对于职场打工人来说绩效绝对是最重要的事情之一,原因也很简单:奖金、晋升、涨薪都和它有关系。 比如下面这个美团员工在脉脉上的自曝就很凄凉&#xff1…

Python 操作 MongoDB 详解

嗨害大家好鸭!我是芝士❤ 一、前言 MongoDB属于 NoSQL(非关系型数据库), 是一个基于分布式文件存储的开源数据库系统。 二、操作 MongoDB 1. 安装 pymongo python 使用第三方库来连接操作 MongoDB, 所以我们首先安…

Redis的SDS、intSet、Dict、ZipList、QuickList、RedisObject及五种数据结构详解

动态字符串 我们都知道Redis中保存的key是字符串,value 往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构 不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题: 1.获取字符串长度需要进行计算 2.…

网络安全之入侵检测

目录 网络安全之入侵检测 入侵检测经典理论 经典检测模型 入侵检测作用与原理 意义 异常检测模型(Anomaly Detection) 误用检测模型(Misuse Detection) 经典特征案例 ​编辑自定义签名 ​编辑 签名检查过程 检测生命周期…

http请求类RestTemplate

RestTemplate类1.1 初识RestTemplate1.2 注入方式1.3 常用方法1.1 初识RestTemplate RestTemplate类是一个用于发送HTTP请求并获取HTTP响应的模板类。它可以被用于执行GET,POST,PUT,DELETE等各种HTTP方法,同时还支持处理请求参数…

微信小程序python+vue今日菜谱美食点赞收藏评价系统

谈到外出就餐,我们除了怕排队,也怕这家餐厅的服务员不够用,没人为我们点餐,那么一餐饭排队一小时,点餐恐怕也要花个半小时,这样不仅给消费者的用餐体验大打折扣同时也给商家的口碑造成了严重负面的影响&…

KD-2125地下电缆测试仪

一、产品概述 管线探测仪是一套高性能地下金属管线探测系统,由信号发射机和接收机组成,可用于金属管线、地下电缆的路径探测、管线普查和深度测量,配合多种选配附件,可以进行唯一性鉴别,以及管道绝缘破损和部分类型电缆…

在Win10安装pytorch3d

Pytorch3d 这是一个为使用Pytorch的3D计算机视觉研究提供的高效可重用的组件 主要特点包括: 用于储存和操作三角形网格的数据结构三角形网格的高效操作(投影变换、图形卷积、采样、损失函数)可区分的网格渲染器可以通过隐式函数进行新试图…

Object.defineProperty()和 Proxy的区别

众所周知,Object.defineProperty()和 Proxy的区别也是Vue2和Vue3响应式的区别,现在就聊一下为什么Proxy会替代Object.defineProperty() Object.defineProperty(): Object.defineProperty() 方法会直接在一个对象上定义一个新属性&#xff0…

字节8年测试经验,送给想要学习自动化测试的同学6条建议

我的职业生涯开始和大多数测试人一样,开始接触都是纯功能界面测试。那时候在一家电商公司做测试,做了有一段时间,熟悉产品的业务流程以及熟练测试工作流程规范之后,效率提高了,工作比较轻松,也得到了更好的…

MyBatisPlus-DQL编程控制

MyBatisPlus-DQL编程控制3,DQL编程控制3.1 条件查询3.1.1 条件查询的类3.1.2 环境构建3.1.3 构建条件查询3.1.4 多条件构建3.1.5 null判定3.2 查询投影3.2.1 查询指定字段3.2.2 聚合查询3.2.3 分组查询3.3 查询条件3.3.1 等值查询3.3.2 范围查询3.3.3 模糊查询3.3.4…

堆来咯!!!

堆是什么? 是土堆吗? 那当然不是啦~ 堆是一种被看作完全二叉树的数组。 那么什么是完全二叉树呢? 如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。 堆的特…