有下面一段代码:
`def event_cb_3(evt):
print('in evt3')
print('mem used now: %0.2f kB' % (mem.getNow()))
def event_cb_2(evt):
print('in evt2: %u' % (evt.get_code()))
print('mem used now: %0.2f kB' % (mem.getNow()))
for i in range(0, 10):
btn3 = lv.btn(lv.scr_act())
btn3.align(lv.ALIGN.TOP_MID, 0, 150 + i * 20)
btn3.add_event_cb(event_cb_3, lv.EVENT.PRESSED, i)
btn1 = lv.btn(lv.scr_act())
btn1.align(lv.ALIGN.TOP_MID, 0, 10)
btn1.add_event_cb(event_cb_2, lv.EVENT.RELEASED, 0)
`
连续创建了10个btn3,按理退出for循环后所有的btn3都应该被释放的,但是依旧显示在窗口上了,内存也是没有释放出来。
我尝试加了__del__函数,似乎就没问题了。
void pika_lvgl_btn___del__(PikaObj* self) { lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj"); lv_obj_del(lv_obj); }
是否我的理解问题还是设计如此的呢?
有下面一段代码:
`def event_cb_3(evt):
print('in evt3')
print('mem used now: %0.2f kB' % (mem.getNow()))
def event_cb_2(evt):
print('in evt2: %u' % (evt.get_code()))
print('mem used now: %0.2f kB' % (mem.getNow()))
btn1 = lv.btn(lv.scr_act())
btn1.align(lv.ALIGN.TOP_MID, 0, 10)
btn1.add_event_cb(event_cb_2, lv.EVENT.RELEASED, 0)
`
连续创建了10个btn3,按理退出for循环后所有的btn3都应该被释放的,但是依旧显示在窗口上了,内存也是没有释放出来。
我尝试加了__del__函数,似乎就没问题了。
void pika_lvgl_btn___del__(PikaObj* self) { lv_obj_t* lv_obj = obj_getPtr(self, "lv_obj"); lv_obj_del(lv_obj); }是否我的理解问题还是设计如此的呢?