LVGL_micropython 模拟器
在使用micropython编写lvgl界面时有时间非常的麻烦。要在设备上才看得到效果。比较麻烦。npx的GUI-Guider软件中的模拟器给抠出来了单独使用,非常不错。
下面是运行实例:
import SDL import utime as time import usys as sys import lvgl as lv import lodepng as png import ustruct lv.init() SDL.init(w=240,h=320) # Register SDL display driver. disp_buf1 = lv.disp_draw_buf_t() buf1_1 = bytearray(240*10) disp_buf1.init(buf1_1, None, len(buf1_1)//4) disp_drv = lv.disp_drv_t() disp_drv.init() disp_drv.draw_buf = disp_buf1 disp_drv.flush_cb = SDL.monitor_flush disp_drv.hor_res = 240 disp_drv.ver_res = 320 disp_drv.register() # Regsiter SDL mouse driver indev_drv = lv.indev_drv_t() indev_drv.init() indev_drv.type = lv.INDEV_TYPE.POINTER indev_drv.read_cb = SDL.mouse_read indev_drv.register() #==========================上面为调用SDL接口代码一般不用修改=========================== class CounterBtn(): def __init__(self): self.cnt = 0 # # Create a button with a label and react on click event. # btn = lv.btn(lv.scr_act()) # Add a button the current screen btn.set_pos(10, 10) # Set its position btn.set_size(120, 50) # Set its size btn.align(lv.ALIGN.CENTER,0,0) btn.add_event_cb(self.btn_event_cb, lv.EVENT.ALL, None) # Assign a callback to the button title = lv.label(lv.scr_act()) # Add a label to the button title.set_pos(5,5) title.set_text("http://www.xb6.cn") # Set the labels text label = lv.label(btn) # Add a label to the button label.set_text("Button") # Set the labels text label.center() def btn_event_cb(self,evt): code = evt.get_code() btn = evt.get_target() if code == lv.EVENT.CLICKED: self.cnt += 1 # Get the first child of the button which is the label and change its text label = btn.get_child(0) label.set_text("Button: " + str(self.cnt)) counterBtn = CounterBtn() # ==============================调用刷新接口不能删除==================================== while SDL.check(): time.sleep_ms(5)