Skip to content

Instantly share code, notes, and snippets.

@villares
Created November 11, 2022 18:40
Show Gist options
  • Save villares/c2239dc2ddc1177b6837b5f9d33e4967 to your computer and use it in GitHub Desktop.
Save villares/c2239dc2ddc1177b6837b5f9d33e4967 to your computer and use it in GitHub Desktop.
import py5
import PySimpleGUI as sg
bg = True
values = {'-Text-': '', '-Hue-': 0, '-BG-': False}
def setup():
global window
py5.size(600, 600)
py5.color_mode(py5.HSB)
py5.text_size(30)
layout = [
[sg.Text('PySimpleGUI FTW!')],
[sg.Input(key='-Text-', enable_events=True)],
[sg.Slider(key='-Hue-', range=(0, 255), orientation='h', enable_events=True)],
[sg.CB('Background', key='-BG-', enable_events=True)]]
window = sg.Window('Sketch controls!', layout)
traverse_layout(layout)
py5.launch_repeating_thread(controls, name='controls')
def controls():
global event, values
event, values = window.read()
if event == sg.WIN_CLOSED:
py5.exit_sketch()
def traverse_layout(layout):
defaults = {
'slider': 0,
'checkbox': False,
}
for element in layout:
if isinstance(element, list):
traverse_layout(element)
elif element.key:
print(element.key, defaults.get(element.Type, ''))
# yield element.key, defaults.get(element.Type, '')
def draw():
if values['-BG-']:
py5.background(50, 100, 100)
py5.fill(255)
py5.text(values['-Text-'], 50, 500)
py5.fill(values['-Hue-'], 200, 200)
py5.circle(100, 100, 50 + 50 * py5.sin(py5.frame_count / 10))
def exiting():
py5.stop_thread('controls')
window.close()
py5.run_sketch()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment