合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox)

微调框 (Spinbox)

spinbox.png


微调框用于数值调整,有时候我们希望获取一个用户输入的数值,但是又不希望弹出键盘,可以使用微调框。

示例代码

-- 回调函数
function spinbox_increment_event_cb(obj, event)if event == lvgl.EVENT_SHORT_CLICKED thenlvgl.spinbox_increment(spinbox)end
endfunction spinbox_decrement_event_cb(obj, event)if event == lvgl.EVENT_SHORT_CLICKED thenlvgl.spinbox_decrement(spinbox)end
end-- 创建按钮
function cBt(cont, txt, cb)local btn = lvgl.btn_create(cont, nil)lvgl.obj_set_event_cb(btn, cb) local label = lvgl.label_create(btn, nil)lvgl.label_set_text(label, txt)
end-- 容器
cont = lvgl.cont_create(lvgl.scr_act(), nil)
lvgl.disp_load_scr(cont)
lvgl.cont_set_fit(cont, lvgl.FIT_TIGHT)
lvgl.obj_align(cont, nil, lvgl.ALIGN_CENTER, 0, 0) 
lvgl.cont_set_layout(cont, lvgl.LAYOUT_CENTER)-- 按钮一
cBt(cont, "plus", spinbox_increment_event_cb)-- 微调框
spinbox = lvgl.spinbox_create(cont, nil)
lvgl.spinbox_set_range(spinbox, -1000, 25000)
lvgl.spinbox_set_digit_format(spinbox, 5, 2)
lvgl.spinbox_step_prev(spinbox)-- 按钮二
cBt(cont, "minus", spinbox_decrement_event_cb)

创建

微调框的创建函数是 spinbox_create,创建也比较简单。

spinbox = lvgl.spinbox_create(cont, nil)

这里有点需要注意,创建的微调框只有这个:
 

创建微调框.png


增大减小按钮是需要自己通过代码创建的,所以上面的示例代码看起来比较多。示例创建的微调框是这个样子:

示例微调框.png

数值调整

微调框的数值调整函数有两个,加一个单位lvgl.spinbox_increment,减一个单位lvgl.spinbox_decrement

lvgl.spinbox_increment(spinbox)
lvgl.spinbox_decrement(spinbox)

lvgl.spinbox_set_range 可以设置微调框的数值显示范围,lvgl.spinbox_set_value 可以直接手动设置数值,lvgl.spinbox_set_step 是需要和上面的 lvgl.spinbox_incrementlvgl.spinbox_decrement两个函数配合使用的,增减的步长默认是 1,这个函数还是很有用的,我们可以把步长设置成 7,然后看看 1000 - 7 到底是多少。

lvgl.spinbox_set_range(spinbox, 0, 1000)
lvgl.spinbox_set_value(spinbox, 1000)
lvgl.spinbox_set_digit_format(spinbox, 4, 0)
lvgl.spinbox_set_step(spinbox, 7)

jdfw3.gif

格式

通过函数 lvgl.spinbox_set_digit_format 可以设置微调框的数字显示格式,第一个参数是微调框的显示位数,是总位数。第二个参数是小数点前面的位数,0 表示没有小数点。除了位数显示,还可以在符号和数字之间添加空格 lvgl.spinbox_set_padding_left

lvgl.spinbox_set_digit_format(spinbox, 8, 4)
lvgl.spinbox_set_padding_left(spinbox, 3)

图片.png

事件

数值更改时会有 lvgl.EVENT_VALUE_CHANGED 消息收到,但是结合一般微调框的使用方法,实际上都是对按钮添加回调,然后通过函数去更改微调框的数值。

jdfw3.gif

API

lvgl.spinbox_create

调用lvgl.spinbox_create(par, copy)
功能创建一个微调框对象
返回指向创建的微调框的指针
参数
par指向对象的指针, 它将是新键对象的父对象
copy指向微调框对象的指针, 如果不为 nil, 则将从其复制新对象

lvgl.spinbox_set_range

调用lvgl.spinbox_set_range(spinbox, min, max)
功能设置微调框的最小值和最大值
参数
spinbox指向微调框对象的指针
min最小值
max最大值

lvgl.spinbox_set_range

调用lvgl.spinbox_set_range(spinbox, val)
功能设置微调框的数值
参数
spinbox指向微调框对象的指针
val需要设置的数值

lvgl.spinbox_set_digit_format

调用lvgl.spinbox_set_digit_format(spinbox, count, pos)
功能设置微调框数值格式
参数
spinbox指向微调框对象的指针
count显示总位数
pos小数点位置,也可以理解成整数位数,0 表示没有小数点。

lvgl.spinbox_set_step

调用lvgl.spinbox_set_step(spinbox, step)
功能设置微调框的设置步长
参数
spinbox指向微调框对象的指针
step需要设置的设置步长

lvgl.spinbox_set_padding_left

调用lvgl.spinbox_set_padding_left(spinbox, n)
功能设置微调框的空格个数
参数
spinbox指向微调框对象的指针
n符号位和数值之间空格的个数

lvgl.spinbox_get_value

调用lvgl.spinbox_get_value(spinbox)
功能获取微调框的数值
返回微调框的数值
参数
spinbox指向微调框对象的指针

lvgl.spinbox_increment

调用lvgl.spinbox_increment(spinbox)
功能微调框的数值增加一个单位
参数
spinbox指向微调框对象的指针

lvgl.spinbox_decrement

调用lvgl.spinbox_decrement(spinbox)
功能微调框的数值减小一个单位
参数
spinbox指向微调框对象的指针

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openssl websockets

1. HTTPS通信的C实现 - 知乎

fluent python part3 一等函数

第 5 章 一等函数 5.1 把函数视作对象 >>> def factorial(n): ... """return n!""" ... return 1 if n < 2 else n * factorial(n - 1) ... >>> factorial(42) 140500611775287989854314260624451156993638400000…

【物联网】简要介绍最小二乘法—C语言实现

最小二乘法是一种常用的数学方法&#xff0c;用于拟合数据和寻找最佳拟合曲线。它的目标是找到一个函数&#xff0c;使其在数据点上的误差平方和最小化。 文章目录 基本原理最小二乘法的求解应用举例使用C语言实现最小二乘法总结 基本原理 假设我们有一组数据点 ( x 1 , y 1 …

pandas读取一个 文件夹下所有excel文件

我这边有个需求&#xff0c;是要求汇总一个文件夹所有的excel文件&#xff0c; 其中有.xls和 .xlsx文件&#xff0c;同时还excel文件中的数据可能还不一致&#xff0c;会有表头数据不一样需要一起汇总。 首先先遍历子文件夹并读取Excel文件&#xff1a; 使用os库来遍历包含子文…

LeetCode 面试题 04.09. 二叉搜索树序列

文章目录 一、题目二、C# 题解 一、题目 从左向右遍历一个数组&#xff0c;通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。 给定一个由不同节点组成的二叉搜索树 root&#xff0c;输出所有可能生成此树的数组。 点击此处跳转题目。 示例 1: 输入: root [2,1,3]…

记录:移动设备软件开发(activity组件)

目录 前言Android简介和发展Android应用的基本组件介绍Activity组件Activity简介Activity的状态和生命周期 小结 前言 移动设备软件开发是指为智能手机、平板电脑等移动设备设计和开发应用程序的过程。移动设备软件开发涉及多种技术、平台和工具&#xff0c;例如Android、iOS、…

9.14号作业

仿照vector手动实现自己的myVector&#xff0c;最主要实现二倍扩容功能 有些功能&#xff0c;不会 #include <iostream>using namespace std; //创建vector类 class Vector { private:int *data;int size;int capacity; public://无参构造Vector(){}//拷贝构造Vector(c…

一个方法用js生成随机双色球、大乐透

代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

002 Linux 权限

前言 本文将会向您介绍关于linux权限方面的内容&#xff0c;包括文件类型&#xff0c;如何切换用户、基本权限、粘滞位等等 Linux具体的用户 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受限制 普通用户&#xff1a;在linux下做有限的事情。 超级用户的…

NDK (ndk)报错 Unity requires NDK r19 (64-bit)(19.0.05232133)

一、介绍 在 Android 添加 NDK ndk 的时候&#xff0c;出现 Unity requires NDK r19 (64-bit)(19.0.05232133)。 二、环境 1、Unity 2020.3.48f1c1 2、Android NDK 配置 三、报错信息 NDK (ndk)报错 Unity requires NDK r19 (64-bit)(19.0.05232133) 四、解决方法 1、下…

【力扣每日一题】2023.9.13 检查骑士巡视方案

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个n*n大小的矩阵&#xff0c;矩阵的元素表示骑士已经行动的次数&#xff0c;问我们骑士能不能按照矩阵里元素顺序来巡视整个…

vue前后端分离单点登录,结合长token和短token进行登录

单点登录背景 在公司发展初期&#xff0c;公司拥有的系统不多&#xff0c;通常一个两个&#xff0c;每个系统都有自己的登录模块&#xff0c;运营人员每天用自己的账号登陆&#xff0c;很方便&#xff0c;但是&#xff0c;随着企业的发展&#xff0c;用到的系统随之增加&#x…

06-Redis缓存高可用集群

上一篇&#xff1a;05-Redis高可用集群之水平扩展 1.集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c…

指引型树型组件的封装

最近&#xff0c;由于业务的需要&#xff0c;需要做一个指向形树型组件。在寻找各种文章后&#xff0c;终于有了思路。&#x1f912;&#x1f912;&#x1f912; 树型组件的思路主要是递归。谈到递归&#xff0c;我们首先要有递归的出口。递归的出口就是没有孩子节点了。这个时…

ESP32主板-MoonESP32

产品简介 Moon-ESP32主板&#xff0c;一款以双核芯片ESP32-E为主芯片的主控板&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;低功耗&#xff0c;板载LED指示灯&#xff0c;引出所有IO端口&#xff0c;并提供多个I2C端口、SPI端口、串行端口&#xff0c;方便连接&#xff0c;…

性能监控-grafana+prometheus+node_exporter

Prometheus是一个开源的系统监控和报警工具。它由SoundCloud开发并于2012年发布&#xff0c;后来成为了一个独立的开源项目&#xff0c;并得到了广泛的应用和支持。 Prometheus的主要功能包括采集和存储各种系统和应用程序的监控数据&#xff0c;并提供强大的查询语言PromQL来…

【C++基础】观察者模式(“发布-订阅”模式)

本文参考&#xff1a;观察者模式 - 摩根斯 | 爱编程的大丙 观察者模式允许我们定义一种订阅机制&#xff0c;可在对象事件发生时通知所有的观察者对象&#xff0c;使它们能够自动更新。观察者模式还有另外一个名字叫做“发布-订阅”模式。 发布者&#xff1a; 添加订阅者&…

K8s上安装gitlab-ce

文章目录 K8s上安装gitlab-ce操作如下gitlab-deployment.yml K8s上安装gitlab-ce 前言   使用pv-pvc来持久化gitlab的数据&#xff0c;配置&#xff0c;日志文件。   pod启动后需要需要修改external_url然后重启pod。 操作如下 mkdir -p /mnt/data01/gitlab ctr -n k8s.…

自动驾驶多任务框架Hybridnets——同时处理车辆检测、可驾驶区域分割、车道线分割模型部署(C++/Python)

一、多感知任务 在移动机器人的感知系统&#xff0c;包括自动驾驶汽车和无人机&#xff0c;会使用多种传感器来获取关键信息&#xff0c;从而实现对环境的感知和物体检测。这些传感器包括相机、激光雷达、雷达、惯性测量单元&#xff08;IMU&#xff09;、全球导航卫星系统&am…

PSP - 蛋白质序列提取 Transformer 蛋白质语言模型 ESM2 特征

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132888139 蛋白质语言模型 ESM (Evolutionary Scale Modeling) 是一种利用深度学习技术来预测蛋白质结构和功能的方法。ESM 通过在大规模的蛋白质…