Version with temp methods in case running an old PySimpleGUI.

This commit is contained in:
PySimpleGUI 2021-08-23 12:50:51 -04:00
parent 53f61455e7
commit db1995658b
1 changed files with 63 additions and 26 deletions

View File

@ -6,26 +6,34 @@ import PySimpleGUI as sg
Note that the PIN used requires Python 3.7+ due to a tkinter problem Note that the PIN used requires Python 3.7+ due to a tkinter problem
This demo uses a Window call only recently added to GitHub in Aug 2021 This demo uses a Window call only recently added to GitHub in Aug 2021
4.46.0.7 of PySimpleGUI provides the methods:
Window.keep_on_top_set
Window.keep_on_top_clear
A temporary implementation is included in case you don't have that version
Copyright 2021 PySimpleGUI Copyright 2021 PySimpleGUI
""" """
sg.theme('dark green 7') def main():
sg.theme('dark green 7')
PIN = '📌' PIN = '📌'
# This custom titlebar inveses the normal text/background colors. Uses a little bigger font
my_titlebar = [[sg.Text('Window title', expand_x=True, grab=True, # This custom titlebar inveses the normal text/background colors. Uses a little bigger font
my_titlebar = [[sg.Text('Window title', expand_x=True, grab=True,
text_color=sg.theme_background_color(), background_color=sg.theme_text_color(), font='_ 12', pad=(0,0)), text_color=sg.theme_background_color(), background_color=sg.theme_text_color(), font='_ 12', pad=(0,0)),
sg.Text(PIN, enable_events=True, k='-PIN-', font='_ 12', pad=(0,0), metadata=False, sg.Text(PIN, enable_events=True, k='-PIN-', font='_ 12', pad=(0,0), metadata=False,
text_color=sg.theme_background_color(), background_color=sg.theme_text_color())]] text_color=sg.theme_background_color(), background_color=sg.theme_text_color())]]
layout = my_titlebar + \ layout = my_titlebar + \
[ [sg.Text('This is my window layout')], [ [sg.Text('This is my window layout')],
[sg.Input(key='-IN-')], [sg.Input(key='-IN-')],
[sg.Button('Go'), sg.Button('Exit')] ] [sg.Button('Go'), sg.Button('Exit')] ]
window = sg.Window('Window Title', layout, no_titlebar=True, resizable=True, margins=(0,0)) window = sg.Window('Window Title', layout, no_titlebar=True, resizable=True, margins=(0,0))
while True: while True:
event, values = window.read() event, values = window.read()
print(event, values) print(event, values)
if event == sg.WIN_CLOSED or event == 'Exit': if event == sg.WIN_CLOSED or event == 'Exit':
@ -39,4 +47,33 @@ while True:
window['-PIN-'].update(text_color=sg.theme_background_color()) window['-PIN-'].update(text_color=sg.theme_background_color())
window.keep_on_top_clear() window.keep_on_top_clear()
window.close() window.close()
# Temp definitions of the Window methods added to 4.46.0.7 of PySimpleGUI
def keep_on_top_set(window):
"""
Sets keep_on_top after a window has been created. Effect is the same
as if the window was created with this set. The Window is also brought
to the front
"""
window.KeepOnTop = True
window.bring_to_front()
window.TKroot.wm_attributes("-topmost", 1)
def keep_on_top_clear(window):
"""
Clears keep_on_top after a window has been created. Effect is the same
as if the window was created with this set.
"""
window.KeepOnTop = False
window.TKroot.wm_attributes("-topmost", 0)
if __name__ == '__main__':
if 'keep_on_top_set' not in dir(sg.Window):
print('You do not have a PySimpleGUI version with required methods. Using the temp ones from this file.')
sg.Window.keep_on_top_set = keep_on_top_set
sg.Window.keep_on_top_clear = keep_on_top_clear
main()