diff --git a/DemoPrograms/Demo_Cursor_Changed_To_Hand.py b/DemoPrograms/Demo_Cursors.py similarity index 65% rename from DemoPrograms/Demo_Cursor_Changed_To_Hand.py rename to DemoPrograms/Demo_Cursors.py index 61da1d6f..e050022e 100644 --- a/DemoPrograms/Demo_Cursor_Changed_To_Hand.py +++ b/DemoPrograms/Demo_Cursors.py @@ -2,11 +2,14 @@ import PySimpleGUI as sg import webbrowser """ - Demonstration of setting an Element's Widget to use a different cursor than the - standard arrow. In this case, the cursor is changed into a hand when hovering over the Text Element. + Demo Cursors + + Demonstration of setting an Element's Cursor to use a different cursor than the standard arrow. + Can also change Cursor at the Window level. + + If you want no cursor, set the cursor to the string 'none'. - This implementation relies on accessing the underlying tkinter widget to change the cursor as there is currently no method provided for you to modify a widget's cursor. Accessing an Element's tkinter widget is easy and straightforward, you simply write: - window[key].Widget + Copyright 2021 PySimpleGUI """ # Here is a more complete list of cursors you can choose from @@ -16,28 +19,35 @@ sg.theme('Light Blue 2') layout = [ [sg.Text('Here is a clickable link for you')], [sg.Text('Notice how the cursor switches to a "hand" when hover over the link')], - [sg.Text('www.PySimpleGUI.org', font=('default 12 underline'), text_color='blue', enable_events=True, key='-LINK-')], + [sg.Text('www.PySimpleGUI.org', font='default 12 underline', text_color='blue', enable_events=True, key='-LINK-')], [sg.Text('Try out these additional cursors')], [sg.Text('watch - This makes the spinning-donut-of-death cursor on Windows', key='-WATCH-')], [sg.Text('fleur - The "Move" cursor', key='-FLEUR-')], [sg.Text('trek - Beam me up Scotty!', key='-TREK-')], - [sg.Button('Exit')] ] + [sg.Text('none - No cursor at all', key='-NONE-')], + [sg.Text('For touchscreen applications, you may want to turn off the cursor entirely for the windw')], + [sg.Text('Click the Hide Cursor button to turn off at the Window level.')], + [sg.Text('Elements that have specific cursors set will continue to show those cursors')], + [sg.Button('Hide Cursor'), sg.Button('Exit')] ] -window = sg.Window('Window Title', layout, finalize=True) +window = sg.Window('Cursor Demo', layout, finalize=True) -# Directly interact with the tkinter widget, changing the cursor shown when placed cursor is over this element -window['-LINK-'].set_cursor(cursor='hand2') +# Make sure window is finalized first. Then set the cursor +window['-LINK-'].set_cursor(cursor='hand1') window['-WATCH-'].set_cursor(cursor='watch') window['-FLEUR-'].set_cursor(cursor='fleur') window['-TREK-'].set_cursor(cursor='trek') window['Exit'].set_cursor(cursor='no') +window['-NONE-'].set_cursor(cursor='none') while True: # Event Loop event, values = window.read() print(event, values) if event in (sg.WIN_CLOSED, 'Exit'): break - if event == '-LINK-': + elif event == 'Hide Cursor': + window.set_cursor('none') # special value that hides the cursor entirely + elif event == '-LINK-': # if the text was clicked, open a browser using the text as the address webbrowser.open(window['-LINK-'].DisplayText) # accessing DisplayText isn't something you'll see often -window.close() +window.close() \ No newline at end of file