main.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- Textarea + 虚拟键盘输入测试
  2. PROJECT = "easylvgl"
  3. VERSION = "1.0.0"
  4. sys.taskInit(function()
  5. -- 初始化 EasyLVGL,800x600 分辨率,使用 ARGB8888(PC 模拟)
  6. local ret = easylvgl.init(800, 600, easylvgl.COLOR_FORMAT_ARGB8888)
  7. if not ret then
  8. log.error("easylvgl", "init failed")
  9. return
  10. end
  11. -- 创建 textarea,通过虚拟键盘输入文本
  12. local textarea = easylvgl.textarea({
  13. parent = easylvgl.screen, -- 父对象,可选,默认当前屏幕
  14. x = 20, y = 20, w = 760, h = 180,
  15. max_len = 256, -- 最大字符数,默认 256
  16. text = "Hello, World!", -- 初始文本
  17. placeholder = "Please input text, the virtual keyboard will auto bind"
  18. })
  19. -- 注册虚拟键盘,将 textarea 作为目标,并监听确认事件
  20. local keyboard = easylvgl.keyboard({
  21. x = 0, y = 0, w = 760, h = 220, -- x, y, 从左边下方开始计算
  22. mode = "text", -- 键盘模式,可选 "text"/"upper"/"special"/"numeric"
  23. target = textarea, -- 关联的 Textarea 对象,可选
  24. on_commit = function() -- 确认事件回调,只有在按下确认键时才会触发
  25. log.info("keyboard", "commit -> " .. (textarea:get_text() or ""))
  26. end
  27. })
  28. -- 持续打印 textarea 变化状态
  29. textarea:set_on_text_change(function()
  30. log.info("textarea", "text changed -> " .. (textarea:get_text() or ""))
  31. end)
  32. while true do
  33. easylvgl.refresh()
  34. sys.wait(10)
  35. end
  36. end)
  37. sys.run()