Initial check-in
This commit is contained in:
parent
882002a0a6
commit
4f0cc1936b
|
@ -0,0 +1,46 @@
|
|||
import PySimpleGUI as sg
|
||||
# import PySimpleGUIQt as sg
|
||||
|
||||
"""
|
||||
tkinter and Qt do not "activate" buttons by pressing the ENTER key with the button highlighted / in focus
|
||||
This demo will enable the application to click on a button if the button has focus (is highlighted) and the
|
||||
user presses the ENTER key.
|
||||
NOTE that the SPACE BAR works correctly out of the box with both tkinter and Qt. If a button has focus and
|
||||
you press the space bar, then tkinter and Qt will both consider that a button click. But not so with the ENTER
|
||||
key.
|
||||
|
||||
The solution is for your program to read the keyboard presses and act upon those directly. It's trivial logic
|
||||
in the end:
|
||||
1. Get a key press
|
||||
2. See if the key is the ENTER key
|
||||
3. Find the Element that currently has focus
|
||||
4. Click the Button if the Element with focus is a button
|
||||
|
||||
"""
|
||||
|
||||
QT_ENTER_KEY1 = 'special 16777220'
|
||||
QT_ENTER_KEY2 = 'special 16777221'
|
||||
|
||||
layout = [ [sg.T('Test of Enter Key use')],
|
||||
[sg.In(key='_IN_')],
|
||||
[sg.Button('Button 1', key='_1_')],
|
||||
[sg.Button('Button 2', key='_2_')],
|
||||
[sg.Button('Button 3', key='_3_')], ]
|
||||
|
||||
window = sg.Window('My new window', layout,
|
||||
return_keyboard_events=True)
|
||||
while True: # Event Loop
|
||||
event, values = window.Read()
|
||||
if event is None:
|
||||
break
|
||||
if event in ('\r', QT_ENTER_KEY1, QT_ENTER_KEY2): # Check for ENTER key
|
||||
elem = window.FindElementWithFocus() # go find element with Focus
|
||||
if elem is not None and elem.Type == sg.ELEM_TYPE_BUTTON: # if it's a button element, click it
|
||||
elem.Click()
|
||||
# check for buttons that have been clicked
|
||||
elif event == '_1_':
|
||||
print('Button 1 clicked')
|
||||
elif event == '_2_':
|
||||
print('Button 2 clicked')
|
||||
elif event == '_3_':
|
||||
print('Button 3 clicked')
|
Loading…
Reference in New Issue