Merge pull request #5525 from PySimpleGUI/Dev-latest

New Demo Program - using a Frame element to draw a "Recording Area" f…
This commit is contained in:
PySimpleGUI 2022-05-29 18:48:21 -04:00 committed by GitHub
commit 18d656b0bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,47 @@
import PySimpleGUI as sg
"""
Demo Frame For Screen Captures
This program can be used to help you record videos.
Because it relies on the "transparent color" feature that's only available on Windows, this Demo is only going
to work the indended way on Windows.
Some video recorders that record a portion of the screen do not show you, at all times, what portion of the screen
is being recorded. This can make it difficult for you to stay within the bounds being recorded.
This demo program is meant to help the situation by showing a thin line that is 20 pixels larger than the area
being recorded.
The top edge of the window has the controls. There's an exit button, a solid "bar" for you to grab with your mouse to move
the frame around your window, and 2 inputs with a "resize" button that enables you to set the frame to the size you want to stay
within.
Copyright 2022 PySimpleGUI.org
"""
def main():
offset = (20, 20) # Number of extra pixels to add to the recording area
default_size = (1920, 1080) # The default size of the recording
location = (None, None) # A specific location to place the window if you want a specific spot
window = sg.Window('Window Title',
[[sg.Button('Exit'), sg.T(sg.SYMBOL_SQUARE * 10, grab=True), sg.I(default_size[0], s=4, k='-W-'), sg.I(default_size[1], s=4, k='-H-'), sg.B('Resize')],
[sg.Frame('', [[]], s=(default_size[0] + offset[0], default_size[1] + offset[1]), k='-FRAME-')]], transparent_color=sg.theme_background_color(),
right_click_menu=['', ['Edit Me', 'Exit']], location=location, no_titlebar=True, keep_on_top=True)
while True: # Event Loop
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Exit':
break
if event == 'Edit Me':
sg.execute_editor(__file__)
elif event == 'Resize':
window['-FRAME-'].set_size((int(values['-W-']) + offset[0], int(values['-H-']) + offset[1]))
window.close()
if __name__ == '__main__':
main()