48 lines
2.1 KiB
Python
48 lines
2.1 KiB
Python
|
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()
|