New Demo Program - Navigating focus using arrow keys on keyboard

This commit is contained in:
PySimpleGUI 2022-06-03 08:28:26 -04:00
parent 708eaeae91
commit c502543038
1 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,60 @@
import PySimpleGUI as sg
"""
Demo - Navigating a window's focus using arrow keys
This Demo Program has 2 features of PySimpleGUI in use:
1. Binding the arrow keys
2. Navigating a window's elements using focus
The first step is to bind the left, right and down arrows to an event.
The call to window.bind will cause events to be generated when these keys are pressed
The next step is to add the focus navigation to your event loop.
When the right key is pressed, the focus moves to the element that should get focus next
When the left arrow key is pressed, the focus moves to the previous element
And when the down arrow is pressed the program exits
Copyright 2022 PySimpleGUI
"""
def main():
layout = [ [sg.Text('My Window')],
[sg.Input(key='-IN-')],
[sg.Input(key='-IN2-')],
[sg.Input(key='-IN3-')],
[sg.Input(key='-IN4-')],
[sg.Input(key='-IN5-')],
[sg.Input(key='-IN6-')],
[sg.Input(key='-IN7-')],
[sg.Button('Go'), sg.Button('Exit')]]
window = sg.Window('Window Title', layout, finalize=True)
# Bind the Left, Right and Down arrow keys to events
window.bind('<Right>', '-NEXT-')
window.bind('<Left>', '-PREV-')
window.bind('<Down>', 'Exit')
while True: # Event Loop
event, values = window.read()
print(event, values)
if event == sg.WIN_CLOSED or event == 'Exit':
break
# Right arrow pressed, so move to the next element that should get focus
if event == '-NEXT-':
next_element = window.find_element_with_focus().get_next_focus()
next_element.set_focus()
# Left arrow pressed, so move to the previous element that should get focus
if event == '-PREV-':
prev_element = window.find_element_with_focus().get_previous_focus()
prev_element.set_focus()
window.close()
if __name__ == '__main__':
main()