diff --git a/gui.py b/gui.py index bd56f19..5e85a64 100644 --- a/gui.py +++ b/gui.py @@ -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))], diff --git a/txt b/txt new file mode 100644 index 0000000..023d834 --- /dev/null +++ b/txt @@ -0,0 +1 @@ +в гуи добавь чтобы панель настроек была с прокруткой, сейчас на экране не помещается. Сделай грамотно и красиво код пиши чтобы все было правильно \ No newline at end of file