From 29fb6fc76d6629c6b72a511626bf879755a8a18f Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Wed, 12 Aug 2020 10:28:03 -0400 Subject: [PATCH] Addition of minimize --- .../Demo_Titlebar_Custom_Dark_Theme.py | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/DemoPrograms/Demo_Titlebar_Custom_Dark_Theme.py b/DemoPrograms/Demo_Titlebar_Custom_Dark_Theme.py index 9d966ac5..0767ca83 100644 --- a/DemoPrograms/Demo_Titlebar_Custom_Dark_Theme.py +++ b/DemoPrograms/Demo_Titlebar_Custom_Dark_Theme.py @@ -22,23 +22,38 @@ import PySimpleGUI as sg # # sg.theme_add_new('DarkGrey8', DarkGrey8) + +def dummy_window(): + """ + Creates an invisible window that is minimized to the taskbar + As soon as something happens to the window, it is closed and the function + returns. + The FocusIn event is set so that if the user restores the window from the taskbar, then the read + wille return, the window will be closed, and the function will return + """ + layout = [[sg.T('You will not see this')]] + window = sg.Window('Window Title', layout, finalize=True, alpha_channel=0) + window.minimize() + window.bind('', '-FOCUS-') + window.read(close=True) + + def title_bar(title): bg = sg.theme_input_background_color() return [sg.Col([[sg.T(title, background_color=bg )]], pad=(0, 0), background_color=bg), - sg.Col([[sg.Text('❎', background_color=bg, enable_events=True, key='Exit')]], element_justification='r', k='-C-', pad=(0, 0), background_color=bg)] + sg.Col([[sg.T('_', background_color=bg, enable_events=True, key='-MINIMIZE-'),sg.Text('❎', background_color=bg, enable_events=True, key='Exit')]], element_justification='r', k='-C-', pad=(0, 0), background_color=bg)] def main(): - sg.theme('DarkGrey8') # Requires 4.28.0.4 or the code at the tiop - layout = [ - title_bar('Window Title'), + sg.theme('DarkGrey8') + layout = [ title_bar('Window Title'), [sg.T('This is normal window text. The above is the fake "titlebar"')], [sg.T('Input something:')], [sg.Input(key='-IN-'), sg.Text(size=(12,1), key='-OUT-')], [sg.Button('Go')] ] - window = sg.Window('Window Title', layout, no_titlebar=True, grab_anywhere=True, keep_on_top=True, margins=(0,0), finalize=True) + window = sg.Window('Window Title', layout, resizable=True, no_titlebar=True, grab_anywhere=True, keep_on_top=True, margins=(0,0), finalize=True) window['-C-'].expand(True, False, False) @@ -47,6 +62,10 @@ def main(): print(event, values) if event == sg.WIN_CLOSED or event == 'Exit': break + if event == '-MINIMIZE-': + window.hide() + dummy_window() + window.un_hide() if event == 'Go': window['-OUT-'].update(values['-IN-']) window.close()