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

QT应用篇 三、QML自定义显示SpinBox的加减按键图片及显示值效果

QT应用篇

一、QT上位机串口编程
二、QML用Image组件实现Progress Bar 的效果
三、QML自定义显示SpinBox的加减按键图片及显示值效果


文章目录

  • QT应用篇
  • 前言
  • 一、qml需求
  • 二、使用组件
    • 1.SpinBox组件
    • 2.SpinBox中QML的使用
  • 总结


前言

记录自己学习QML的一些小技巧方便日后查找

QT的 qml 使用SpinBox来自定义图片来达到花里胡哨的效果


一、qml需求

上位机需要用到SpinBox并需要一些特别的效果及位置的调整

例如:

在这里插入图片描述

二、使用组件

1.SpinBox组件

原始代码如下:

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Shapes 1.12
import QtMultimedia 5.12
...
...
...SpinBox {id: spinBoxx: -164y: 393from: 0to:outFlowSpinBox.valuestepSize: 2}

原始代码效果:
在这里插入图片描述

2.SpinBox中QML的使用

SpinBox允许用户通过单击向上或向下指示按钮,或通过按键盘上的向上或向下来选择一个整数值。另外,SpinBox也可以是可编辑的,这样用户就可以在输入字段中输入文本值。默认情况下,SpinBox提供[0-99]范围内的整数值,步数stepSize为1。

属性:

down.pressed : bool,只读属性,返回true,表示向下指示按钮被点击了.
down.indicator : Item,向下指示按钮指标器,可以重写它自定义样式
down.hovered : bool,只读属性,返回true,表示鼠标徘徊在向下指示按钮的上方
editable : bool,输入字段是否可以编辑,默认为false
from : int,此属性保存范围的起始值。默认值为0。
inputMethodHints : flags,用来提示QML键盘应该输入的类型的值
stepSize : int,步长
textFromValue : 由整数值切换为显示文本时的函数,函数可以有一个或两个参数,第一个参数是要转换的值,第二个可选参数是用于转换的区域设置,可以重写它,让我们显示自定义数值文本
to : int,此属性保存范围的结束值。默认值为99。
up.pressed : bool,只读属性,返回true,表示向上指示按钮被点击了.
up.indicator : Item,向上指示按钮指标器,可以重写它自定义样式
up.hovered : bool,只读属性,返回true,表示鼠标徘徊在向上指示按钮的上方
validator : Validator,输入字段编辑的验证器,必须editable为true,并且SpinBox默认是用IntValidator来接受整数的输入,我们也可以改为DoubleValidator,这样就可以写浮点数了
value : int,当前值,默认值为0。
valueFromText : function,由当前显示的内容切换为整数值的函数,函数可以有一个或两个参数,第一个参数是要转换的text,第二个可选参数是用于转换的区域设置,可以重写它,来获取显示的自定义文本对应的数值


代码示例:(仅显示组件关键代码)

Rectangle {x: 101y: 85width: 86height: 109color: "#00e7eff4"radius: 4TextBase {x: -90y: -91color: "#1e2a64"text: {if (SpinBox1.value < 10 ){return qsTr("0") + SpinBox1.value}else{return SpinBox1.value}}font.bold: trueanchors.fill: parentfont.pixelSize: 75}}SpinBox {id: SpinBox1x: -11y: 6down.indicator: Rectangle {x: 39y: 125width: 50height: 43color: "#00000000"Image {x: 0y: 0width: 35height: 43source: {if (SpinBox1.down.pressed == true){return resourcesPath + "minus_pressed.png"}else{return resourcesPath + "minus.png"}}}}up.indicator: Rectangle {x: 213y: 125width: 50height: 43color: "#00000000"Image {x: 0y: 0width: 35height: 43source: {if (SpinBox1.up.pressed == true){return resourcesPath + "plus_pressed.png"}else{return resourcesPath + "plus.png"}}}}enabled:  true}to: 10anchors.fill: parenteditable: truefrom: 1background: Rectangle {color: "#0007263a"anchors.fill: parent}stepSize: 1contentItem: TextBase {x: 0y: 0visible: falseanchors.fill: parent}value: 5}

实际效果:
在这里插入图片描述

总结

通过使用Image组件的fillMode来实现想要的功能

相关文章:

QT应用篇 三、QML自定义显示SpinBox的加减按键图片及显示值效果

QT应用篇 一、QT上位机串口编程 二、QML用Image组件实现Progress Bar 的效果 三、QML自定义显示SpinBox的加减按键图片及显示值效果 文章目录 QT应用篇前言一、qml需求二、使用组件1.SpinBox组件2.SpinBox中QML的使用 总结 前言 记录自己学习QML的一些小技巧方便日后查找 QT的…...

2022年全国职业院校技能大赛网络安全竞赛试题1-10-B模块总结

前言 结尾有对22年国赛题型总结 试题1模块B 网络安全事件响应、数字取证调查和应用安全 B-1任务一&#xff1a;主机发现与信息收集 *任务说明&#xff1a;仅能获取Server1的IP地址 1.通过渗透机Kali2.0对靶机场景进行TCP同步扫描 (使用Nmap工具)&#xff0c;并将该操作使用…...

20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850

20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850 2023/12/28 12:30 开发板&#xff1a;Firefly的AIO-3399J【RK3399】 SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBr…...

php-fpm运行一段时间,内存不足

目录 一&#xff1a;原因分析 二&#xff1a;解决 三:观察系统情况 php-fpm运行一段时间&#xff0c;内存不足&#xff0c;是什么原因呢。 一&#xff1a;原因分析 1:首先php-fpm的配置 &#xff08;1&#xff09;启动的进程数 启动的进程数越多,占用内存越高; 2:其次…...

基于轻量级GhostNet模型开发构建生活场景下生活垃圾图像识别系统

轻量级识别模型在我们前面的博文中已经有过很多实践了&#xff0c;感兴趣的话可以自行移步阅读&#xff1a; 《移动端轻量级模型开发谁更胜一筹&#xff0c;efficientnet、mobilenetv2、mobilenetv3、ghostnet、mnasnet、shufflenetv2驾驶危险行为识别模型对比开发测试》 《基…...

《Linux系列》Linux磁盘MBR分区扩容

文章目录 Linux磁盘MBR分区扩容1.前言2.控制台磁盘扩容3.分区扩容3.1 fdisk3.2 lsblk3.3 扩容分区 4.扩容文件系统4.1 df4.2 扩容文件系统 Linux磁盘MBR分区扩容 1&#xff09;参考阿里云扩容分区文档&#xff0c;整理MBR分区扩容 2&#xff09;本文档适用于MBR分区(fdisk -lu查…...

IPv6地址配置

IPv6地址接口配置 IPv6地址结构 一个IPv6地址可以分为两部分: 网络前缀:n比特,相当于IPv4地址中的网络ID 接口标识:128-n比特,相当于IPv4地址中的主机ID 注意: 对于IPv6单播地址来说,如果地址的前三bit不是000,则接口标识必须为64位,如果地址的前三位是000,则没有此…...

Ubuntu20.04 防火墙配置

ubuntu 系统中配置防火墙 ufw&#xff08;Uncomplicated Firewall&#xff09;是一个简化的、易于使用的Linux防火墙工具&#xff0c;旨在方便用户管理iptables防火墙规则。 特点 简化的防火墙管理&#xff1a;ufw提供了一个简洁的命令行界面&#xff0c;让您能够轻松地添加、…...

Windows上ModbusTCP模拟Master与Slave工具的使用

场景 Modbus Slave 与 Modbus Poll主从设备模拟软件与Configure Virtual Serial串口模拟软件使用&#xff1a; Modebus Slave 与 Modbus Poll主从设备模拟软件与Configure Virtual Serial串口模拟软件使用_modbus poll激活-CSDN博客 数据对接协议为Modbus TCP,本地开发需要使…...

史上最细,13年老鸟总结-性能测试7大关键点,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、测试环境的鉴定…...

长虹智能电视ZLM60HiS机芯刷机方法及刷机固件,附进维修模式方法

适配机芯&#xff1a;ZLM60HiS 型号&#xff1a;Q1FU、D6000i、U3、D8000ID 软件强制升级方法&#xff1a; 1、下载后解压&#xff0c;找到upgrade_ZLM60HiS_MT5508_V1.00xxx_part.pkg 、chandroid_ota_ZLM60HiS_datapart.zip复制到U盘根目录&#xff08;不要有任何文件夹&a…...

计算机网络【Google的TCP BBR拥塞控制算法深度解析】

Google的TCP BBR拥塞控制算法深度解析 宏观背景下的BBR 慢启动、拥塞避免、快速重传、快速恢复&#xff1a; 说实话&#xff0c;这些机制完美适应了1980年代的网络特征&#xff0c;低带宽&#xff0c;浅缓存队列&#xff0c;美好持续到了2000年代。 随后互联网大爆发&#x…...

lvs+keepalived+nginx实现四层负载+七层负载

目录 一、lvs配置 二、nginx配置 三、测试 3.1 keepalived负载均衡 3.2 lvskeepalived高可用 3.3 nginx高可用 主机IPlvs01-33 11.0.1.33 lvs02-3411.0.1.34nginx0111.0.1.31nginx0211.0.1.32VIP11.0.1.30 4台主机主机添加host [rootnginx01 sbin]# cat /etc/hosts 127.0.0.…...

独立看门狗与窗口看门狗

一、简介 STM32F10xxx内置两个看门狗&#xff0c;提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障&#xff1b;当计数器达到给定的超时值时&#xff0c;触发一个中断(仅适用于窗口型看门狗)或产…...

【CTF杂项】常见文件文件头文件尾格式总结 各类文件头

常见文件文件头文件尾格式总结及各类文件头 以下是常见文件的文件头格式总结及各类文件头的描述&#xff1a; 图像文件&#xff1a; JPEG&#xff1a;文件头格式为FF D8 FF&#xff0c;文件尾格式为FF D9。PNG&#xff1a;文件头格式为89 50 4E 47 0D 0A 1A 0A&#xff0c;文件…...

深度学习-模型转换_所需算力相关

模型转换相关 tensflow转onnx python -m tf2onnx.convert \--graphdef /root/autodl-tmp/warren/text-detection-ctpn/data/ctpn.pb \--output ./model.onnx --inputs Placeholder:0 --outputs Reshape_2:0&#xff0c;rpn_bbox_pred/Reshape_1:0 pytorch转onnx #!/usr/…...

Koordinator 助力云原生应用性能提升:小红书混部技术实践

作者&#xff1a;宋泽辉&#xff08;小红书&#xff09;、张佐玮&#xff08;阿里云&#xff09; 编者按&#xff1a; Koordinator 是一个开源项目&#xff0c;是基于阿里巴巴内部多年容器调度、混部实践经验孵化诞生&#xff0c;是行业首个生产可用、面向大规模场景的开源混…...

java中如何使用elasticsearch—RestClient操作文档(CRUD)

目录 一、案例分析 二、Java代码中操作文档 2.1 初始化JavaRestClient 2.2 添加数据到索引库 2.3 根据id查询数据 2.4 根据id修改数据 2.4 删除操作 三、java代码对文档进行操作的基本步骤 一、案例分析 去数据库查询酒店数据&#xff0c;导入到hotel索引库&#xff0…...

MySQL自定义函数

MySQL自定义函数 函数与存储过程类似&#xff0c;也是一组预先编译好的SQL语句的集合&#xff0c;但是存储过程可以有0个或多个返回&#xff0c;函数就只能有一个返回 创建函数 #语法 参数列表包含两部分 参数名和参数类型 #函数体必须有return语句 且每个sql语句后要以;结尾 所…...

技术学习|CDA level I 数据库应用(数据操作语言DML)

数据操作语言&#xff08;DML&#xff09;是对表中记录进行添加、更新、删除等操作的语言。 一、添加数据 在数据表中填充数据有两种方法&#xff0c;第一种方法是使用insert into语句向数据表中直接录入每行数据信息&#xff0c;但并不常用&#xff0c;因为分析使用的数据很…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...