win_number_input.lua 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. --[[
  2. @module win_number_input
  3. @summary 数字输入框演示模块
  4. @version 1.0.0
  5. @date 2025.11.28
  6. @author 江访
  7. @usage
  8. 本文件为数字输入框演示模块,核心业务逻辑为:
  9. 1、创建窗口容器并设置白色背景;
  10. 2、添加数字输入框组件;
  11. 3、添加增减按钮控制数字输入;
  12. 4、实现数字范围限制功能;
  13. 5、启动UI渲染循环持续刷新显示;
  14. 本文件没有对外接口;
  15. ]]
  16. local function ui_main()
  17. -- 显示触摸初始化
  18. hw_font_drv.init()
  19. -- 设置主题
  20. ui.sw_init({ theme = "light" })
  21. -- 创建窗口容器
  22. local page1 = ui.window({ background_color = ui.COLOR_WHITE })
  23. -- 创建数字输入框组件
  24. local number_input = ui.input({
  25. x = 20, y = 20,
  26. w = 100, h = 30,
  27. placeholder = "0-100",
  28. input_type = "number",
  29. max_length = 3
  30. })
  31. -- 创建减少按钮
  32. local btn_number_minus = ui.button({
  33. x = 130, y = 20,
  34. w = 40, h = 30,
  35. text = "-",
  36. on_click = function()
  37. local value = tonumber(number_input:get_text()) or 0
  38. if value > 0 then
  39. number_input:set_text(tostring(value - 1))
  40. end
  41. end
  42. })
  43. -- 创建增加按钮
  44. local btn_number_plus = ui.button({
  45. x = 180, y = 20,
  46. w = 40, h = 30,
  47. text = "+",
  48. on_click = function()
  49. local value = tonumber(number_input:get_text()) or 0
  50. if value < 100 then
  51. number_input:set_text(tostring(value + 1))
  52. end
  53. end
  54. })
  55. -- 添加组件到窗口
  56. page1:add(number_input)
  57. page1:add(btn_number_minus)
  58. page1:add(btn_number_plus)
  59. -- 注册窗口到UI系统
  60. ui.add(page1)
  61. end
  62. sys.taskInit(ui_main)