def focus_selectable(self, forward=True):
"""Change focus to next selectable widget
forward: True to select next widget, False to select previous widget
Returns True if focus was changed, False otherwise.
"""
op = operator.add if forward else operator.sub
max_pos = len(self._main.contents)-1
new_pos = None
pos = self.focus_position
while 0 < pos < max_pos:
pos = op(pos, 1)
item = self._get_item_by_position(pos, visible=True)
if item is not None and item['widget'].selectable():
new_pos = pos
break
if new_pos is not None:
self.focus_position = new_pos
return True
return False
评论列表
文章目录