improved settings bar

This commit is contained in:
Ayzen
2026-02-09 11:30:44 +03:00
parent 1252bcbdbf
commit 6068d5dc19
2 changed files with 25 additions and 1 deletions

25
gui.py
View File

@ -79,6 +79,12 @@ H_SEPARATOR_PAD = (1, 20)
OUTPUT_TEXT_PAD = (5, (20, 5))
WINDOW_MARGIN = (60, 90)
MIN_WINDOW_SIZE = (880, 660)
SETTINGS_PANEL_MIN_HEIGHT = 320
SETTINGS_PANEL_HEIGHT_MARGIN = 230
SETTINGS_PANEL_MIN_WIDTH = 320
SETTINGS_PANEL_WIDTH_COMPACT = 420
SETTINGS_PANEL_WIDTH_WIDE = 480
SETTINGS_PANEL_WIDTH_MARGIN = 60
#### ---- Setting GUI
@ -120,11 +126,27 @@ def get_screen_size():
return WINDOW_SIZE
def get_settings_panel_size(window_size):
window_width, window_height = window_size
desired_width = SETTINGS_PANEL_WIDTH_COMPACT if COMPACT_LAYOUT else SETTINGS_PANEL_WIDTH_WIDE
available_width = window_width - (GRAPH_CANVAS_SIZE[0] * 2) - SETTINGS_PANEL_WIDTH_MARGIN
if available_width > 0:
width = min(desired_width, available_width)
if available_width >= SETTINGS_PANEL_MIN_WIDTH:
width = max(width, SETTINGS_PANEL_MIN_WIDTH)
else:
width = desired_width
height = max(SETTINGS_PANEL_MIN_HEIGHT, window_height - SETTINGS_PANEL_HEIGHT_MARGIN)
return (int(width), int(height))
def setup_gui(params):
sg.theme("DarkBlue12")
window_size = get_screen_size()
settings_panel_size = get_settings_panel_size(window_size)
layout_input_col1 = [[sg.Text(SET_TEMPERATURE_TEXT_1, size=(SET_TEXT_WIDTH, 1)), sg.Push(),
sg.Input(params['Temp_1'], disabled_readonly_background_color="Gray", size=(SET_INPUT_WIDTH,1), key='-InputT1-', disabled = True)],
@ -273,7 +295,8 @@ def setup_gui(params):
[sg.Button(SET_START_BUTTON_TEXT, key='-StartCycle-', disabled_button_color=("Gray22", "Blue"), disabled=True), sg.Button(SET_STOP_BUTTON_TEXT, disabled_button_color=("Gray22", "Blue"), key='-StopCycle-', disabled=True), sg.Button(SET_RAMP_BUTTON_TEXT, key='-StartRamp-', disabled_button_color=("Gray22", "Blue")), sg.Button(SET_AD9833_BUTTON_TEXT, key='-StartRamp9833-', disabled_button_color=("Gray22", "Blue"))]]
layout = [[sg.Column(layout_input_col1, pad=(0,0)), sg.VSeparator(pad=(4,0)), sg.Column(layout_input_col2, pad=(0,0)), sg.VSeparator(pad=(4,0)), sg.Column(layout_input_col3, pad=(0,0))],
layout = [[sg.Column(layout_input_col1, pad=(0,0)), sg.VSeparator(pad=(4,0)), sg.Column(layout_input_col2, pad=(0,0)), sg.VSeparator(pad=(4,0)),
sg.Column(layout_input_col3, pad=(0,0), scrollable=True, vertical_scroll_only=True, size=settings_panel_size, key='-SettingsPanel-', expand_y=True)],
[sg.HSeparator(pad=(25,10))],