Merge pull request #171 from MikeTheWatchGuy/Dev-latest

grab_anywhere option now available for non-blocking forms, but defaul…
This commit is contained in:
MikeTheWatchGuy 2018-09-08 15:33:19 -04:00 committed by GitHub
commit a7783f8441
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 9 deletions

View File

@ -108,7 +108,7 @@ def AllWidgetsWithContext():
# sg.ChangeLookAndFeel('GreenTan') # sg.ChangeLookAndFeel('GreenTan')
with sg.FlexForm('Everything bagel', default_element_size=(40, 1)) as form: with sg.FlexForm('Everything bagel', default_element_size=(40, 1), grab_anywhere=False) as form:
layout = [ layout = [
[sg.Text('All graphic widgets in one form!', size=(30, 1), font=("Helvetica", 25))], [sg.Text('All graphic widgets in one form!', size=(30, 1), font=("Helvetica", 25))],
[sg.Text('Here is some text.... and a place to enter text')], [sg.Text('Here is some text.... and a place to enter text')],
@ -140,7 +140,7 @@ def AllWidgetsNoContext():
# Green & tan color scheme # Green & tan color scheme
sg.ChangeLookAndFeel('GreenTan') sg.ChangeLookAndFeel('GreenTan')
form = sg.FlexForm('Everything bagel', default_element_size=(40, 1)) form = sg.FlexForm('Everything bagel', default_element_size=(40, 1), grab_anywhere=False)
layout = [ layout = [
[sg.Text('All graphic widgets in one form!', size=(30, 1), font=("Helvetica", 25))], [sg.Text('All graphic widgets in one form!', size=(30, 1), font=("Helvetica", 25))],
[sg.Text('Here is some text.... and a place to enter text')], [sg.Text('Here is some text.... and a place to enter text')],
@ -274,7 +274,7 @@ def RealtimeButtons():
import PySimpleGUI as sg import PySimpleGUI as sg
# Make a form, but don't use context manager # Make a form, but don't use context manager
form = sg.FlexForm('Robotics Remote Control', auto_size_text=True) form = sg.FlexForm('Robotics Remote Control')
form_rows = [[sg.Text('Robotics Remote Control')], form_rows = [[sg.Text('Robotics Remote Control')],
[sg.T(' ' * 10), sg.RealtimeButton('Forward')], [sg.T(' ' * 10), sg.RealtimeButton('Forward')],
@ -319,8 +319,8 @@ def TabbedForm():
""" """
import PySimpleGUI as sg import PySimpleGUI as sg
with sg.FlexForm('', auto_size_text=True) as form: with sg.FlexForm('') as form:
with sg.FlexForm('', auto_size_text=True) as form2: with sg.FlexForm('') as form2:
layout_tab_1 = [[sg.Text('First tab', size=(20, 1), font=('helvetica', 15))], layout_tab_1 = [[sg.Text('First tab', size=(20, 1), font=('helvetica', 15))],
[sg.InputText(), sg.Text('Enter some info')], [sg.InputText(), sg.Text('Enter some info')],
@ -352,7 +352,7 @@ def MediaPlayer():
image_exit = './ButtonGraphics/Exit.png' image_exit = './ButtonGraphics/Exit.png'
# Open a form, note that context manager can't be used generally speaking for async forms # Open a form, note that context manager can't be used generally speaking for async forms
form = sg.FlexForm('Media File Player', auto_size_text=True, default_element_size=(20, 1), form = sg.FlexForm('Media File Player', default_element_size=(20, 1),
font=("Helvetica", 25)) font=("Helvetica", 25))
# define layout of the rows # define layout of the rows
layout = [[sg.Text('Media File Player', size=(17, 1), font=("Helvetica", 25))], layout = [[sg.Text('Media File Player', size=(17, 1), font=("Helvetica", 25))],
@ -623,7 +623,7 @@ def CanvasWidget():
[gui.T('Change circle color to:'), gui.ReadFormButton('Red'), gui.ReadFormButton('Blue')] [gui.T('Change circle color to:'), gui.ReadFormButton('Red'), gui.ReadFormButton('Blue')]
] ]
form = gui.FlexForm('Canvas test') form = gui.FlexForm('Canvas test', grab_anywhere=True)
form.Layout(layout) form.Layout(layout)
form.ReadNonBlocking() form.ReadNonBlocking()

View File

@ -1455,7 +1455,7 @@ class FlexForm:
''' '''
Display a user defined for and return the filled in data Display a user defined for and return the filled in data
''' '''
def __init__(self, title, default_element_size=DEFAULT_ELEMENT_SIZE, default_button_element_size = (None, None), auto_size_text=None, auto_size_buttons=None, scale=(None, None), location=(None, None), button_color=None, font=None, progress_bar_color=(None, None), background_color=None, is_tabbed_form=False, border_depth=None, auto_close=False, auto_close_duration=DEFAULT_AUTOCLOSE_TIME, icon=DEFAULT_WINDOW_ICON, return_keyboard_events=False, use_default_focus=True, text_justification=None, no_titlebar=False, grab_anywhere=True, keep_on_top=False): def __init__(self, title, default_element_size=DEFAULT_ELEMENT_SIZE, default_button_element_size = (None, None), auto_size_text=None, auto_size_buttons=None, scale=(None, None), location=(None, None), button_color=None, font=None, progress_bar_color=(None, None), background_color=None, is_tabbed_form=False, border_depth=None, auto_close=False, auto_close_duration=DEFAULT_AUTOCLOSE_TIME, icon=DEFAULT_WINDOW_ICON, return_keyboard_events=False, use_default_focus=True, text_justification=None, no_titlebar=False, grab_anywhere=None, keep_on_top=False):
self.AutoSizeText = auto_size_text if auto_size_text is not None else DEFAULT_AUTOSIZE_TEXT self.AutoSizeText = auto_size_text if auto_size_text is not None else DEFAULT_AUTOSIZE_TEXT
self.AutoSizeButtons = auto_size_buttons if auto_size_buttons is not None else DEFAULT_AUTOSIZE_BUTTONS self.AutoSizeButtons = auto_size_buttons if auto_size_buttons is not None else DEFAULT_AUTOSIZE_BUTTONS
self.Title = title self.Title = title
@ -2700,7 +2700,8 @@ def StartupTK(my_flex_form):
my_flex_form.TKroot = root my_flex_form.TKroot = root
# Make moveable window # Make moveable window
if (my_flex_form.NoTitleBar or my_flex_form.GrabAnywhere) and not my_flex_form.NonBlocking: if ((my_flex_form.NoTitleBar or my_flex_form.GrabAnywhere in (None, True)) and not my_flex_form.NonBlocking) or \
(my_flex_form.GrabAnywhere == True and my_flex_form.NonBlocking):
root.bind("<ButtonPress-1>", my_flex_form.StartMove) root.bind("<ButtonPress-1>", my_flex_form.StartMove)
root.bind("<ButtonRelease-1>", my_flex_form.StopMove) root.bind("<ButtonRelease-1>", my_flex_form.StopMove)
root.bind("<B1-Motion>", my_flex_form.OnMotion) root.bind("<B1-Motion>", my_flex_form.OnMotion)