def gesture_layer_clicked(obj): w = 480 h = 800 win = Window("gesture-layer", ELM_WIN_BASIC, title="Gesture Layer", autodel=True, size=(w, h)) if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) bg = Background(win, file=os.path.join(img_path, "wood_01.jpg"), size_hint_weight=EXPAND_BOTH) win.resize_object_add(bg) bg.show() photos = [] photos.append(photo_object_add(win, None, os.path.join(img_path, "pol_sky.png"), 200, 200, 365, 400, 0)) photos.append(photo_object_add(win, None, os.path.join(img_path, "pol_twofish.png"), 40, 300, 365, 400, 45)) en = Entry(win, line_wrap=ELM_WRAP_MIXED) en.text = "You can use whatever object you want, even entries like this." postit = Layout(win, file=(os.path.join(script_path, "postit_ent.edj"), "main")) postit.part_content_set("ent", en) photos.append(photo_object_add(win, postit, None, 50, 50, 382, 400, 355)) win.show()
def plug_add(win, bx, name): plug = Plug(win, size_hint_weight=EXPAND_BOTH) if plug.connect(name, 0, False): ly = Layout(win, file=(os.path.join(script_path, "test.edj"), "win_config"), size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH) ly.show() bx.pack_end(ly) ly.part_content_set("swallow", plug) plug.show() else: print("No plug") plug.delete() return None return plug
def layout_clicked(obj): win = StandardWindow("layout", "Layout", autodel=True) win.elm_event_callback_add(_event) if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) ly = Layout(win, file=(os.path.join(script_path, "test.edj"), "layout"), size_hint_weight=EXPAND_BOTH) win.resize_object_add(ly) ly.show() bt = Button(win, text="Button 1") ly.part_content_set("element1", bt) bt.elm_event_callback_add(_event) bt.elm_event_callback_del(_event) bt.show() bt = Button(win, text="Button 2") ly.part_content_set("element2", bt) bt.show() bt = Button(win, text="Button 3") ly.part_content_set("element3", bt) bt.show() for o in ly.content_swallow_list_get(): print("Swallowed: " + str(o)) win.show()
def gesture_layer_clicked(obj): w = 480 h = 800 win = Window("gesture-layer", ELM_WIN_BASIC, title="Gesture Layer", autodel=True, size=(w, h)) if obj is None: win.callback_delete_request_add(lambda o: elementary.exit()) bg = Background(win, file=os.path.join(img_path, "wood_01.jpg"), size_hint_weight=EXPAND_BOTH) win.resize_object_add(bg) bg.show() photos = [] photos.append( photo_object_add(win, None, os.path.join(img_path, "pol_sky.png"), 200, 200, 365, 400, 0)) photos.append( photo_object_add(win, None, os.path.join(img_path, "pol_twofish.png"), 40, 300, 365, 400, 45)) en = Entry(win, line_wrap=ELM_WRAP_MIXED) en.text = "You can use whatever object you want, even entries like this." postit = Layout(win, file=(os.path.join(script_path, "postit_ent.edj"), "main")) postit.part_content_set("ent", en) photos.append(photo_object_add(win, postit, None, 50, 50, 382, 400, 355)) win.show()
def flip_clicked(obj, item=None): win = StandardWindow("flip", "Flip", autodel=True, size=(320, 320)) box = Box(win, size_hint_weight=EXPAND_BOTH) win.resize_object_add(box) box.show() fl = Flip(win, size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH) fl.callback_animate_begin_add(my_flip_animate_begin) fl.callback_animate_done_add(my_flip_animate_done) box.pack_end(fl) fl.show() # flip front content o = Background(win, size_hint_weight=EXPAND_BOTH, file=os.path.join(img_path, "sky_01.jpg")) fl.part_content_set("front", o) o.show() # flip back content ly = Layout(win, file=(os.path.join(script_path, "test.edj"), "layout"), size_hint_weight=EXPAND_BOTH) fl.part_content_set("back", ly) ly.show() bt = Button(win, text="Button 1") ly.part_content_set("element1", bt) bt.show() bt = Button(win, text="Button 2") ly.part_content_set("element2", bt) bt.show() bt = Button(win, text="Button 3") ly.part_content_set("element3", bt) bt.show() # flip buttons (first row) hbox = Box(win, size_hint_weight=EXPAND_HORIZ, size_hint_align=(EVAS_HINT_FILL, 0.0), horizontal=True) hbox.show() box.pack_end(hbox) count = 1 for mode in [ELM_FLIP_ROTATE_X_CENTER_AXIS, ELM_FLIP_ROTATE_Y_CENTER_AXIS, ELM_FLIP_ROTATE_XZ_CENTER_AXIS, ELM_FLIP_ROTATE_YZ_CENTER_AXIS]: bt = Button(win, size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH, text=str(count)) bt.callback_clicked_add(my_flip_go, fl, mode) hbox.pack_end(bt) bt.show() count += 1 # flip buttons (second row) hbox = Box(win, size_hint_weight=EXPAND_HORIZ, size_hint_align=(EVAS_HINT_FILL, 0.0), horizontal=True) hbox.show() box.pack_end(hbox) for mode in [ELM_FLIP_CUBE_LEFT, ELM_FLIP_CUBE_RIGHT, ELM_FLIP_CUBE_UP, ELM_FLIP_CUBE_DOWN]: bt = Button(win, size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH, text=str(count)) bt.callback_clicked_add(my_flip_go, fl, mode) hbox.pack_end(bt) bt.show() count += 1 # flip buttons (third row) hbox = Box(win, size_hint_weight=EXPAND_HORIZ, size_hint_align=(EVAS_HINT_FILL, 0.0), horizontal=True) hbox.show() box.pack_end(hbox) for mode in [ELM_FLIP_PAGE_LEFT, ELM_FLIP_PAGE_RIGHT, ELM_FLIP_PAGE_UP, ELM_FLIP_PAGE_DOWN]: bt = Button(win, size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH, text=str(count)) bt.callback_clicked_add(my_flip_go, fl, mode) hbox.pack_end(bt) bt.show() count += 1 win.show()
def flip_interactive_clicked(obj, item=None): win = StandardWindow("flip", "Flip", autodel=True, size=(320, 320)) box = Box(win, size_hint_weight=EXPAND_BOTH) win.resize_object_add(box) box.show() # flip object fl = Flip(win, size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH, interaction=ELM_FLIP_INTERACTION_NONE) fl.interaction_direction_enabled_set(ELM_FLIP_DIRECTION_UP, True) fl.interaction_direction_enabled_set(ELM_FLIP_DIRECTION_DOWN, True) fl.interaction_direction_enabled_set(ELM_FLIP_DIRECTION_LEFT, True) fl.interaction_direction_enabled_set(ELM_FLIP_DIRECTION_RIGHT, True) fl.interaction_direction_hitsize_set(ELM_FLIP_DIRECTION_UP, 0.25) fl.interaction_direction_hitsize_set(ELM_FLIP_DIRECTION_DOWN, 0.25) fl.interaction_direction_hitsize_set(ELM_FLIP_DIRECTION_LEFT, 0.25) fl.interaction_direction_hitsize_set(ELM_FLIP_DIRECTION_RIGHT, 0.25) fl.callback_animate_begin_add(my_flip_animate_begin) fl.callback_animate_done_add(my_flip_animate_done) box.pack_end(fl) fl.show() # front content (image) o = Background(win, size_hint_weight=EXPAND_BOTH, file=os.path.join(img_path, "sky_01.jpg")) fl.part_content_set("front", o) o.show() # back content (layout) ly = Layout(win, size_hint_weight=EXPAND_BOTH, file=(os.path.join(script_path, "test.edj"), "layout")) fl.part_content_set("back", ly) ly.show() bt = Button(win, text="Button 1") ly.part_content_set("element1", bt) bt.show() bt = Button(win, text="Button 2") ly.part_content_set("element2", bt) bt.show() bt = Button(win, text="Button 3") ly.part_content_set("element3", bt) bt.show() # radio buttons rd = Radio(win, state_value=ELM_FLIP_INTERACTION_NONE, text="None") rd.callback_changed_add(my_cb_radios, fl) box.pack_end(rd) rd.show() rdg = rd rd = Radio(win, state_value=ELM_FLIP_INTERACTION_ROTATE, text="Rotate") rd.callback_changed_add(my_cb_radios, fl) rd.group_add(rdg) box.pack_end(rd) rd.show() rd = Radio(win, state_value=ELM_FLIP_INTERACTION_CUBE, text="Cube") rd.callback_changed_add(my_cb_radios, fl) rd.group_add(rdg) box.pack_end(rd) rd.show() rd = Radio(win, state_value=ELM_FLIP_INTERACTION_PAGE, text="Page") rd.callback_changed_add(my_cb_radios, fl) rd.group_add(rdg) box.pack_end(rd) rd.show() # window show win.show()
def focus_clicked(obj, item=None): win = StandardWindow("focus", "Focus", autodel=True, size=(800,600)) win.focus_highlight_enabled = True tbx = Box(win, size_hint_weight=EXPAND_BOTH) win.resize_object_add(tbx) tbx.show() ### Toolbar tbar = Toolbar(win, shrink_mode=ELM_TOOLBAR_SHRINK_MENU, size_hint_align=(EVAS_HINT_FILL,0.0)) tb_it = tbar.item_append("document-print", "Hello", _tb_sel) tb_it.disabled = True tb_it = tbar.item_append("folder-new", "World", _tb_sel) tb_it = tbar.item_append("object-rotate-right", "H", _tb_sel) tb_it = tbar.item_append("mail-send", "Comes", _tb_sel) tb_it = tbar.item_append("clock", "Elementary", _tb_sel) tb_it = tbar.item_append("refresh", "Menu", _tb_sel) tb_it.menu = True tbar.menu_parent = win menu = tb_it.menu menu.item_add(None, "Shrink", "edit-cut", _tb_sel) menu_it = menu.item_add(None, "Mode", "edit-copy", _tb_sel) menu.item_add(menu_it, "is set to", "edit-paste", _tb_sel) menu.item_add(menu_it, "or to", "edit-paste", _tb_sel) menu.item_add(None, "Menu", "edit-delete", _tb_sel) tbx.pack_end(tbar) tbar.show() mainbx = Box(win, horizontal=True, size_hint_weight=EXPAND_BOTH) tbx.pack_end(mainbx) mainbx.show() ## First Col bx = Box(win, size_hint_weight=EXPAND_BOTH) mainbx.pack_end(bx) bx.show() lb = Label(win, text="<b>Use Tab or Shift+Tab<br/>or Arrow keys</b>", size_hint_align=FILL_BOTH) bx.pack_end(lb) lb.show() tg = Check(win, style="toggle") tg.part_text_set("on", "Yes") tg.part_text_set("off", "No") bx.pack_end(tg) tg.show() en = Entry(win, scrollable=True, single_line=True, text="This is a single line", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bx.pack_end(en) en.show() # bx2 = Box(win, horizontal=True, size_hint_align=FILL_BOTH) bx.pack_end(bx2) bx2.show() for i in range(2): bt = Button(win, text="Box", size_hint_align=FILL_BOTH, disabled=(i % 2)) bx2.pack_end(bt) bt.show() sc = Scroller(win, bounce=(True,True), content_min_limit=(1,1), size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH) bx2.pack_end(sc) sc.show() bt = Button(win, text="Scroller", size_hint_align=FILL_BOTH) sc.content = bt bt.show() # bt = Button(win, text="Box", size_hint_align=FILL_BOTH) bx.pack_end(bt) bt.show() # bx2 = Box(win, horizontal=True, size_hint_align=FILL_BOTH) bx.pack_end(bx2) bx2.show() for i in range(2): bx3 = Box(win, size_hint_align=FILL_BOTH) bx2.pack_end(bx3) bx3.show() for j in range(3): bt = Button(win, text="Box", size_hint_align=FILL_BOTH) bx3.pack_end(bt) bt.show() sc = Scroller(win, bounce=(False, True), content_min_limit=(1,0), size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) sc.content_min_limit=(1,1) bx2.pack_end(sc) sc.show() bx3 = Box(win, size_hint_align=FILL_BOTH) sc.content = bx3 bx3.show() for i in range(5): bt = Button(win, text="BX Scroller", size_hint_align=FILL_BOTH) bx3.pack_end(bt) bt.show() ## Second Col ly = Layout(win, size_hint_weight=EXPAND_BOTH) ly.file = edj_file, "twolines" mainbx.pack_end(ly) ly.show() bx2 = Box(win, horizontal=True, size_hint_align=FILL_BOTH) ly.part_content_set("element1", bx2) bx2.show() for i in range(3): bt = Button(win, text="Layout", size_hint_align=FILL_BOTH) bx2.pack_end(bt) bt.show() bx2.focus_custom_chain_prepend(bt) bx2 = Box(win, size_hint_align=FILL_BOTH) ly.part_content_set("element2", bx2) bx2.show() bt = Button(win, text="Disable", size_hint_align=FILL_BOTH) bt.callback_clicked_add(lambda b: b.disabled_set(True)) bx2.pack_end(bt) bt.show() bx2.focus_custom_chain_prepend(bt) bt2 = Button(win, text="Enable", size_hint_align=FILL_BOTH) bt2.callback_clicked_add(lambda b, b1: b1.disabled_set(False), bt) bx2.pack_end(bt2) bt2.show() bx2.focus_custom_chain_append(bt2) ## Third Col bx = Box(win, size_hint_weight=EXPAND_BOTH) mainbx.pack_end(bx) bx.show() fr = Frame(win, text="Frame", ) bx.pack_end(fr) fr.show() tb = Table(win, size_hint_weight=EXPAND_BOTH) fr.content = tb tb.show() for j in range(1): for i in range(2): bt = Button(win, text="Table", size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) tb.pack(bt, i, j, 1, 1) bt.show() # fr = Bubble(win, text="Bubble", size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) bx.pack_end(fr) fr.show() tb = Table(win, size_hint_weight=EXPAND_BOTH) fr.content = tb tb.show() for j in range(2): for i in range(1): bt = Button(win, text="Table", size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) tb.pack(bt, i, j, 1, 1) bt.show() win.show()
def focus2_clicked(obj, item=None): win = StandardWindow("focus2", "Focus 2", autodel=True, size=(400, 400)) win.focus_highlight_enabled = True bx = Box(win, size_hint_weight=EXPAND_BOTH) win.resize_object_add(bx) bx.show() PARENT = bx en = Entry(PARENT, scrollable=True, single_line=True, text="Entry that should get focus", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bx.pack_end(en) en.show() bt = Button(PARENT, text="Give focus to entry") bt.callback_clicked_add(_focus_obj, en) bx.pack_end(bt) bt.show() ly = Layout(PARENT, size_hint_weight=EXPAND_BOTH) ly.file = edj_file, "layout" bx.pack_end(ly) ly.show() bt1 = bt = Button(ly, text="Button 1") ly.part_content_set("element1", bt) en1 = Entry(ly, scrollable=True, single_line=True, text="Scrolled Entry that should get focus", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ ) ly.part_content_set("element2", en1) bt = Button(ly, text="Button 2") ly.part_content_set("element3", bt) bt = Button(PARENT, text="Give focus to layout", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_obj, ly) bx.pack_end(bt) bt.show() bt = Button(PARENT, text="Give focus to layout part", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_layout_part, ly) bx.pack_end(bt) bt.show() bt = Button(PARENT, text="Give focus to layout 'Button 1'", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_obj, bt1) bx.pack_end(bt) bt.show() bt = Button(PARENT, text="Give focus to layout 'Entry'", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_obj, en1) bx.pack_end(bt) bt.show() bt.focus_next_object_set(en, ELM_FOCUS_DOWN) en.focus_next_object_set(bt, ELM_FOCUS_UP) win.show()
def focus_clicked(obj, item=None): win = StandardWindow("focus", "Focus", autodel=True, size=(800, 600)) win.focus_highlight_enabled = True tbx = Box(win, size_hint_weight=EXPAND_BOTH) win.resize_object_add(tbx) tbx.show() ### Toolbar tbar = Toolbar(win, shrink_mode=ELM_TOOLBAR_SHRINK_MENU, size_hint_align=(EVAS_HINT_FILL, 0.0)) tb_it = tbar.item_append("document-print", "Hello", _tb_sel) tb_it.disabled = True tb_it = tbar.item_append("folder-new", "World", _tb_sel) tb_it = tbar.item_append("object-rotate-right", "H", _tb_sel) tb_it = tbar.item_append("mail-send", "Comes", _tb_sel) tb_it = tbar.item_append("clock", "Elementary", _tb_sel) tb_it = tbar.item_append("refresh", "Menu", _tb_sel) tb_it.menu = True tbar.menu_parent = win menu = tb_it.menu menu.item_add(None, "Shrink", "edit-cut", _tb_sel) menu_it = menu.item_add(None, "Mode", "edit-copy", _tb_sel) menu.item_add(menu_it, "is set to", "edit-paste", _tb_sel) menu.item_add(menu_it, "or to", "edit-paste", _tb_sel) menu.item_add(None, "Menu", "edit-delete", _tb_sel) tbx.pack_end(tbar) tbar.show() mainbx = Box(win, horizontal=True, size_hint_weight=EXPAND_BOTH) tbx.pack_end(mainbx) mainbx.show() ## First Col bx = Box(win, size_hint_weight=EXPAND_BOTH) mainbx.pack_end(bx) bx.show() lb = Label(win, text="<b>Use Tab or Shift+Tab<br/>or Arrow keys</b>", size_hint_align=FILL_BOTH) bx.pack_end(lb) lb.show() tg = Check(win, style="toggle") tg.part_text_set("on", "Yes") tg.part_text_set("off", "No") bx.pack_end(tg) tg.show() en = Entry(win, scrollable=True, single_line=True, text="This is a single line", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bx.pack_end(en) en.show() # bx2 = Box(win, horizontal=True, size_hint_align=FILL_BOTH) bx.pack_end(bx2) bx2.show() for i in range(2): bt = Button(win, text="Box", size_hint_align=FILL_BOTH, disabled=(i % 2)) bx2.pack_end(bt) bt.show() sc = Scroller(win, bounce=(True, True), content_min_limit=(1, 1), size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH) bx2.pack_end(sc) sc.show() bt = Button(win, text="Scroller", size_hint_align=FILL_BOTH) sc.content = bt bt.show() # bt = Button(win, text="Box", size_hint_align=FILL_BOTH) bx.pack_end(bt) bt.show() # bx2 = Box(win, horizontal=True, size_hint_align=FILL_BOTH) bx.pack_end(bx2) bx2.show() for i in range(2): bx3 = Box(win, size_hint_align=FILL_BOTH) bx2.pack_end(bx3) bx3.show() for j in range(3): bt = Button(win, text="Box", size_hint_align=FILL_BOTH) bx3.pack_end(bt) bt.show() sc = Scroller(win, bounce=(False, True), content_min_limit=(1, 0), size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) sc.content_min_limit = (1, 1) bx2.pack_end(sc) sc.show() bx3 = Box(win, size_hint_align=FILL_BOTH) sc.content = bx3 bx3.show() for i in range(5): bt = Button(win, text="BX Scroller", size_hint_align=FILL_BOTH) bx3.pack_end(bt) bt.show() ## Second Col ly = Layout(win, size_hint_weight=EXPAND_BOTH) ly.file = edj_file, "twolines" mainbx.pack_end(ly) ly.show() bx2 = Box(win, horizontal=True, size_hint_align=FILL_BOTH) ly.part_content_set("element1", bx2) bx2.show() for i in range(3): bt = Button(win, text="Layout", size_hint_align=FILL_BOTH) bx2.pack_end(bt) bt.show() bx2.focus_custom_chain_prepend(bt) bx2 = Box(win, size_hint_align=FILL_BOTH) ly.part_content_set("element2", bx2) bx2.show() bt = Button(win, text="Disable", size_hint_align=FILL_BOTH) bt.callback_clicked_add(lambda b: b.disabled_set(True)) bx2.pack_end(bt) bt.show() bx2.focus_custom_chain_prepend(bt) bt2 = Button(win, text="Enable", size_hint_align=FILL_BOTH) bt2.callback_clicked_add(lambda b, b1: b1.disabled_set(False), bt) bx2.pack_end(bt2) bt2.show() bx2.focus_custom_chain_append(bt2) ## Third Col bx = Box(win, size_hint_weight=EXPAND_BOTH) mainbx.pack_end(bx) bx.show() fr = Frame( win, text="Frame", ) bx.pack_end(fr) fr.show() tb = Table(win, size_hint_weight=EXPAND_BOTH) fr.content = tb tb.show() for j in range(1): for i in range(2): bt = Button(win, text="Table", size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) tb.pack(bt, i, j, 1, 1) bt.show() # fr = Bubble(win, text="Bubble", size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) bx.pack_end(fr) fr.show() tb = Table(win, size_hint_weight=EXPAND_BOTH) fr.content = tb tb.show() for j in range(2): for i in range(1): bt = Button(win, text="Table", size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH) tb.pack(bt, i, j, 1, 1) bt.show() win.show()
def focus2_clicked(obj, item=None): win = StandardWindow("focus2", "Focus 2", autodel=True, size=(400, 400)) win.focus_highlight_enabled = True bx = Box(win, size_hint_weight=EXPAND_BOTH) win.resize_object_add(bx) bx.show() PARENT = bx en = Entry(PARENT, scrollable=True, single_line=True, text="Entry that should get focus", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bx.pack_end(en) en.show() bt = Button(PARENT, text="Give focus to entry") bt.callback_clicked_add(_focus_obj, en) bx.pack_end(bt) bt.show() ly = Layout(PARENT, size_hint_weight=EXPAND_BOTH) ly.file = edj_file, "layout" bx.pack_end(ly) ly.show() bt1 = bt = Button(ly, text="Button 1") ly.part_content_set("element1", bt) en1 = Entry(ly, scrollable=True, single_line=True, text="Scrolled Entry that should get focus", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) ly.part_content_set("element2", en1) bt = Button(ly, text="Button 2") ly.part_content_set("element3", bt) bt = Button(PARENT, text="Give focus to layout", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_obj, ly) bx.pack_end(bt) bt.show() bt = Button(PARENT, text="Give focus to layout part", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_layout_part, ly) bx.pack_end(bt) bt.show() bt = Button(PARENT, text="Give focus to layout 'Button 1'", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_obj, bt1) bx.pack_end(bt) bt.show() bt = Button(PARENT, text="Give focus to layout 'Entry'", size_hint_weight=EXPAND_HORIZ, size_hint_align=FILL_HORIZ) bt.callback_clicked_add(_focus_obj, en1) bx.pack_end(bt) bt.show() bt.focus_next_object_set(en, ELM_FOCUS_DOWN) en.focus_next_object_set(bt, ELM_FOCUS_UP) win.show()