Merge pull request #163 from MikeTheWatchGuy/Dev-latest

New feature - keep_on_top setting in FlexForm
This commit is contained in:
MikeTheWatchGuy 2018-09-07 22:15:05 -04:00 committed by GitHub
commit 71600bc4ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 8 deletions

View File

@ -1,3 +1,5 @@
#!/usr/bin/env Python3
import PySimpleGUI as sg import PySimpleGUI as sg

View File

@ -431,9 +431,10 @@ def ScriptLauncher():
def ExecuteCommandSubprocess(command, *args): def ExecuteCommandSubprocess(command, *args):
try: try:
expanded_args = [] # expanded_args = []
for a in args: # for a in args:
expanded_args += a # expanded_args += a
expanded_args = [*args]
sp = subprocess.Popen([command,expanded_args], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) sp = subprocess.Popen([command,expanded_args], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = sp.communicate() out, err = sp.communicate()
if out: if out:

View File

@ -1433,7 +1433,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): 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):
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
@ -1475,6 +1475,7 @@ class FlexForm:
self.TextJustification = text_justification self.TextJustification = text_justification
self.NoTitleBar = no_titlebar self.NoTitleBar = no_titlebar
self.GrabAnywhere = grab_anywhere self.GrabAnywhere = grab_anywhere
self.KeepOnTop = keep_on_top
# ------------------------- Add ONE Row to Form ------------------------- # # ------------------------- Add ONE Row to Form ------------------------- #
def AddRow(self, *args): def AddRow(self, *args):
@ -1647,7 +1648,6 @@ class FlexForm:
return screen_width, screen_height return screen_width, screen_height
def StartMove(self, event): def StartMove(self, event):
try: try:
self.TKroot.x = event.x self.TKroot.x = event.x
@ -2666,15 +2666,14 @@ def StartupTK(my_flex_form):
_my_windows.Increment() _my_windows.Increment()
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: if my_flex_form.NoTitleBar or my_flex_form.GrabAnywhere:
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)
if my_flex_form.KeepOnTop:
root.wm_attributes("-topmost", 1)
# root.protocol("WM_DELETE_WINDOW", MyFlexForm.DestroyedCallback()) # root.protocol("WM_DELETE_WINDOW", MyFlexForm.DestroyedCallback())
# root.bind('<Destroy>', MyFlexForm.DestroyedCallback()) # root.bind('<Destroy>', MyFlexForm.DestroyedCallback())