Merge pull request #4486 from PySimpleGUI/Dev-latest

Dev latest
This commit is contained in:
PySimpleGUI 2021-07-02 15:05:08 -04:00 committed by GitHub
commit d0078e66dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 11 deletions

View File

@ -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()