mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-25 18:29:26 +08:00
@@ -1,32 +0,0 @@
|
||||
def textarea_event_handler(e, ta):
|
||||
print("Enter was pressed. The current text is: " + ta.get_text())
|
||||
|
||||
|
||||
def buttonm_event_handler(e, ta):
|
||||
obj = e.get_target_obj()
|
||||
txt = obj.get_button_text(obj.get_selected_button())
|
||||
if txt == lv.SYMBOL.BACKSPACE:
|
||||
ta.del_char()
|
||||
elif txt == lv.SYMBOL.NEW_LINE:
|
||||
lv.event_send(ta, lv.EVENT.READY, None)
|
||||
elif txt:
|
||||
ta.add_text(txt)
|
||||
|
||||
|
||||
ta = lv.textarea(lv.screen_active())
|
||||
ta.set_one_line(True)
|
||||
ta.align(lv.ALIGN.TOP_MID, 0, 10)
|
||||
ta.add_event_cb(lambda e: textarea_event_handler(e, ta), lv.EVENT.READY, None)
|
||||
ta.add_state(lv.STATE.FOCUSED) # To be sure the cursor is visible
|
||||
|
||||
buttonm_map = ["1", "2", "3", "\n",
|
||||
"4", "5", "6", "\n",
|
||||
"7", "8", "9", "\n",
|
||||
lv.SYMBOL.BACKSPACE, "0", lv.SYMBOL.NEW_LINE, ""]
|
||||
|
||||
buttonm = lv.buttonmatrix(lv.screen_active())
|
||||
buttonm.set_size(200, 150)
|
||||
buttonm.align(lv.ALIGN.BOTTOM_MID, 0, -10)
|
||||
buttonm.add_event_cb(lambda e: buttonm_event_handler(e, ta), lv.EVENT.VALUE_CHANGED, None)
|
||||
buttonm.remove_flag(lv.obj.FLAG.CLICK_FOCUSABLE) # To keep the text area focused on button clicks
|
||||
buttonm.set_map(buttonm_map)
|
||||
@@ -1,47 +0,0 @@
|
||||
def ta_event_cb(e):
|
||||
code = e.get_code()
|
||||
ta = e.get_target_obj()
|
||||
if code == lv.EVENT.CLICKED or code == lv.EVENT.FOCUSED:
|
||||
# Focus on the clicked text area
|
||||
if kb != None:
|
||||
kb.set_textarea(ta)
|
||||
|
||||
elif code == lv.EVENT.READY:
|
||||
print("Ready, current text: " + ta.get_text())
|
||||
|
||||
|
||||
# Create the password box
|
||||
|
||||
pwd_ta = lv.textarea(lv.screen_active())
|
||||
pwd_ta.set_text("")
|
||||
pwd_ta.set_password_mode(True)
|
||||
pwd_ta.set_one_line(True)
|
||||
pwd_ta.set_width(lv.pct(45))
|
||||
pwd_ta.set_pos(5, 20)
|
||||
pwd_ta.add_event_cb(ta_event_cb, lv.EVENT.ALL, None)
|
||||
|
||||
# Create a label and position it above the text box
|
||||
pwd_label = lv.label(lv.screen_active())
|
||||
pwd_label.set_text("Password:")
|
||||
pwd_label.align_to(pwd_ta, lv.ALIGN.OUT_TOP_LEFT, 0, 0)
|
||||
|
||||
# Create the one-line mode text area
|
||||
text_ta = lv.textarea(lv.screen_active())
|
||||
text_ta.set_width(lv.pct(45))
|
||||
text_ta.set_one_line(True)
|
||||
text_ta.add_event_cb(ta_event_cb, lv.EVENT.ALL, None)
|
||||
text_ta.set_password_mode(False)
|
||||
|
||||
text_ta.align(lv.ALIGN.TOP_RIGHT, -5, 20)
|
||||
|
||||
# Create a label and position it above the text box
|
||||
oneline_label = lv.label(lv.screen_active())
|
||||
oneline_label.set_text("Text:")
|
||||
oneline_label.align_to(text_ta, lv.ALIGN.OUT_TOP_LEFT, 0, 0)
|
||||
|
||||
# Create a keyboard
|
||||
kb = lv.keyboard(lv.screen_active())
|
||||
kb.set_size(lv.pct(100), lv.pct(50))
|
||||
|
||||
kb.set_textarea(pwd_ta) # Focus it on one of the text areas to start
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
def ta_event_cb(e):
|
||||
ta = e.get_target_obj()
|
||||
txt = ta.get_text()
|
||||
# print(txt)
|
||||
pos = ta.get_cursor_pos()
|
||||
# print("cursor pos: ",pos)
|
||||
# find position of ":" in text
|
||||
colon_pos= txt.find(":")
|
||||
# if there are more than 2 digits before the colon, remove the last one entered
|
||||
if colon_pos == 3:
|
||||
ta.del_char()
|
||||
if colon_pos != -1:
|
||||
# if there are more than 3 digits after the ":" remove the last one entered
|
||||
rest = txt[colon_pos:]
|
||||
if len(rest) > 3:
|
||||
ta.del_char()
|
||||
|
||||
if len(txt) < 2:
|
||||
return
|
||||
if ":" in txt:
|
||||
return
|
||||
if txt[0] >= '0' and txt[0] <= '9' and \
|
||||
txt[1] >= '0' and txt[1] <= '9':
|
||||
if len(txt) == 2 or txt[2] != ':' :
|
||||
ta.set_cursor_pos(2)
|
||||
ta.add_char(ord(':'))
|
||||
#
|
||||
# Automatically format text like a clock. E.g. "12:34"
|
||||
# Add the ':' automatically
|
||||
#
|
||||
# Create the text area
|
||||
|
||||
ta = lv.textarea(lv.screen_active())
|
||||
ta.add_event_cb(ta_event_cb, lv.EVENT.VALUE_CHANGED, None)
|
||||
ta.set_accepted_chars("0123456789:")
|
||||
ta.set_max_length(5)
|
||||
ta.set_one_line(True)
|
||||
ta.set_text("")
|
||||
ta.add_state(lv.STATE.FOCUSED)
|
||||
|
||||
# Create a keyboard
|
||||
kb = lv.keyboard(lv.screen_active())
|
||||
kb.set_size(lv.pct(100), lv.pct(50))
|
||||
kb.set_mode(lv.keyboard.MODE.NUMBER)
|
||||
kb.set_textarea(ta)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user