Пример #1
0
import guizero

app = guizero.App(title="My second GUI app",
                  width=300,
                  height=200,
                  layout="grid")

combo_label = guizero.Text(app, text="Which film?", grid=[0, 0], align='left')
film_choice = guizero.Combo(app,
                            options=['Star Wars', 'Frozen', 'Lion King'],
                            grid=[1, 0],
                            align="left")

cbox_label = guizero.Text(app, text="Seat Type", grid=[0, 1], align='left')
vip_seat = guizero.CheckBox(app, text="VIP seat?", grid=[1, 1], align='left')

row_choice = guizero.ButtonGroup(app,
                                 options=[["Front", "F"], ["Middle", "M"],
                                          ["Back", "B"]],
                                 selected="M",
                                 horizontal=True,
                                 grid=[1, 2],
                                 align="left")


def do_booking():
    print(film_choice.value)
    print(vip_seat.value)
    print(row_choice.value)
    guizero.info("Booking", "Thank you for booking")
Пример #2
0
    def __init__(self, app, current_config):
        self.current_config = current_config
        self.data_queue = Queue()

        # Sensor's Online / Offline IP List Selection 1
        self.app_checkbox_all_column1 = guizero.CheckBox(
            app,
            text="Check ALL Column 1",
            command=self._app_check_all_ip1,
            grid=[1, 1, 3, 1],
            align="left")

        self.app_checkbox_ip1 = guizero.CheckBox(app,
                                                 text="IP        ",
                                                 grid=[1, 2],
                                                 align="left")

        self.app_textbox_ip1 = guizero.TextBox(app,
                                               text="192.168.10.11",
                                               width=21,
                                               grid=[2, 2],
                                               align="left")

        self.app_checkbox_ip2 = guizero.CheckBox(app,
                                                 text="IP ",
                                                 grid=[1, 3],
                                                 align="left")

        self.app_textbox_ip2 = guizero.TextBox(app,
                                               text="192.168.10.12",
                                               width=21,
                                               grid=[2, 3],
                                               align="left")

        self.app_checkbox_ip3 = guizero.CheckBox(app,
                                                 text="IP ",
                                                 grid=[1, 4],
                                                 align="left")

        self.app_textbox_ip3 = guizero.TextBox(app,
                                               text="192.168.10.13",
                                               width=21,
                                               grid=[2, 4],
                                               align="left")

        self.app_checkbox_ip4 = guizero.CheckBox(app,
                                                 text="IP ",
                                                 grid=[1, 5],
                                                 align="left")

        self.app_textbox_ip4 = guizero.TextBox(app,
                                               text="192.168.10.14",
                                               width=21,
                                               grid=[2, 5],
                                               align="left")

        self.app_checkbox_ip5 = guizero.CheckBox(app,
                                                 text="IP ",
                                                 grid=[1, 6],
                                                 align="left")

        self.app_textbox_ip5 = guizero.TextBox(app,
                                               text="192.168.10.15",
                                               width=21,
                                               grid=[2, 6],
                                               align="left")

        self.app_checkbox_ip6 = guizero.CheckBox(app,
                                                 text="IP ",
                                                 grid=[1, 7],
                                                 align="left")

        self.app_textbox_ip6 = guizero.TextBox(app,
                                               text="192.168.10.16",
                                               width=21,
                                               grid=[2, 7],
                                               align="left")

        self.app_checkbox_ip7 = guizero.CheckBox(app,
                                                 text="IP ",
                                                 grid=[1, 8],
                                                 align="left")

        self.app_textbox_ip7 = guizero.TextBox(app,
                                               text="192.168.10.17",
                                               width=21,
                                               grid=[2, 8],
                                               align="left")

        self.app_checkbox_ip8 = guizero.CheckBox(app,
                                                 text="IP ",
                                                 grid=[1, 9],
                                                 align="left")

        self.app_textbox_ip8 = guizero.TextBox(app,
                                               text="192.168.10.18",
                                               width=21,
                                               grid=[2, 9],
                                               align="left")

        # Sensor's Online / Offline IP List Selection 2
        self.app_checkbox_all_column2 = guizero.CheckBox(
            app,
            text="Check ALL Column 2",
            command=self._app_check_all_ip2,
            grid=[3, 1, 3, 1],
            align="left")

        self.app_checkbox_ip9 = guizero.CheckBox(app,
                                                 text="IP        ",
                                                 grid=[3, 2],
                                                 align="left")

        self.app_textbox_ip9 = guizero.TextBox(app,
                                               text="192.168.10.19",
                                               width=21,
                                               grid=[4, 2],
                                               align="left")

        self.app_checkbox_ip10 = guizero.CheckBox(app,
                                                  text="IP ",
                                                  grid=[3, 3],
                                                  align="left")

        self.app_textbox_ip10 = guizero.TextBox(app,
                                                text="192.168.10.20",
                                                width=21,
                                                grid=[4, 3],
                                                align="left")

        self.app_checkbox_ip11 = guizero.CheckBox(app,
                                                  text="IP ",
                                                  grid=[3, 4],
                                                  align="left")

        self.app_textbox_ip11 = guizero.TextBox(app,
                                                text="192.168.10.21",
                                                width=21,
                                                grid=[4, 4],
                                                align="left")

        self.app_checkbox_ip12 = guizero.CheckBox(app,
                                                  text="IP ",
                                                  grid=[3, 5],
                                                  align="left")

        self.app_textbox_ip12 = guizero.TextBox(app,
                                                text="192.168.10.22",
                                                width=21,
                                                grid=[4, 5],
                                                align="left")

        self.app_checkbox_ip13 = guizero.CheckBox(app,
                                                  text="IP ",
                                                  grid=[3, 6],
                                                  align="left")

        self.app_textbox_ip13 = guizero.TextBox(app,
                                                text="192.168.10.23",
                                                width=21,
                                                grid=[4, 6],
                                                align="left")

        self.app_checkbox_ip14 = guizero.CheckBox(app,
                                                  text="IP ",
                                                  grid=[3, 7],
                                                  align="left")

        self.app_textbox_ip14 = guizero.TextBox(app,
                                                text="192.168.10.24",
                                                width=21,
                                                grid=[4, 7],
                                                align="left")

        self.app_checkbox_ip15 = guizero.CheckBox(app,
                                                  text="IP ",
                                                  grid=[3, 8],
                                                  align="left")

        self.app_textbox_ip15 = guizero.TextBox(app,
                                                text="192.168.10.25",
                                                width=21,
                                                grid=[4, 8],
                                                align="left")

        self.app_checkbox_ip16 = guizero.CheckBox(app,
                                                  text="IP ",
                                                  grid=[3, 9],
                                                  align="left")

        self.app_textbox_ip16 = guizero.TextBox(app,
                                                text="192.168.10.26",
                                                width=21,
                                                grid=[4, 9],
                                                align="left")

        # Window Tweaks
        self.app_checkbox_all_column1.value = 0
        self.app_checkbox_all_column2.value = 0
        self._app_check_all_ip1()
        self._app_check_all_ip2()
        self.app_checkbox_ip1.value = 1
    def __init__(self, app, ip_selection, current_config):
        self.ip_selection = ip_selection
        self.current_config = current_config
        self.readable_column_names = app_variables.CreateSQLColumnsReadable()
        self.sql_columns = app_variables.CreateSQLColumnNames()

        self.window = guizero.Window(app,
                                     title="Remote Sensor Display",
                                     width=275,
                                     height=400,
                                     layout="grid",
                                     visible=False)

        self.text_temperature_offset = guizero.Text(self.window,
                                                    text="Env Temp Offset:",
                                                    color='green',
                                                    grid=[1, 11],
                                                    align="left")

        self.textbox_temperature_offset = guizero.TextBox(self.window,
                                                          text="",
                                                          width=5,
                                                          grid=[2, 11],
                                                          align="left")

        self.checkbox_default_offset = guizero.CheckBox(
            self.window,
            text="Use Sensor\nDefault",
            command=self._click_checkbox_offset,
            grid=[2, 11],
            align="right")

        self.checkbox_custom_text = guizero.CheckBox(
            self.window,
            text="Text Message",
            command=self._text_checkbox,
            grid=[1, 16],
            align="left")

        self.checkbox_master = guizero.CheckBox(self.window,
                                                text="All Sensors",
                                                command=self._master_checkbox,
                                                grid=[2, 16],
                                                align="left")

        self.text_space1 = guizero.Text(self.window,
                                        text=" ",
                                        grid=[1, 17],
                                        align="left")

        self.checkbox_up_time = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.system_uptime,
            args=[self.sql_columns.system_uptime],
            grid=[1, 27],
            align="left")

        self.checkbox_cpu_temp = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.cpu_temp,
            args=[self.sql_columns.cpu_temp],
            grid=[1, 28],
            align="left")

        self.checkbox_temperature = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.environmental_temp,
            args=[self.sql_columns.environmental_temp],
            grid=[1, 29],
            align="left")

        self.checkbox_pressure = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.pressure,
            args=[self.sql_columns.pressure],
            grid=[1, 30],
            align="left")

        self.checkbox_altitude = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.altitude,
            args=[self.sql_columns.altitude],
            grid=[1, 31],
            align="left")

        self.checkbox_humidity = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.humidity,
            args=[self.sql_columns.humidity],
            grid=[1, 32],
            align="left")

        self.checkbox_distance = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.distance,
            args=[self.sql_columns.distance],
            grid=[1, 33],
            align="left")

        self.checkbox_gas = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.gas,
            args=[self.sql_columns.gas],
            grid=[1, 34],
            align="left")

        self.checkbox_particulate_matter = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.particulate_matter,
            args=[self.sql_columns.particulate_matter],
            grid=[2, 27],
            align="left")

        self.checkbox_lumen = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.lumen,
            args=[self.sql_columns.lumen],
            grid=[2, 28],
            align="left")

        self.checkbox_colour = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.colours,
            args=[self.sql_columns.rgb],
            grid=[2, 29],
            align="left")

        self.checkbox_ultra_violet = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.ultra_violet,
            args=[self.sql_columns.ultra_violet],
            grid=[2, 30],
            align="left")

        self.checkbox_acc = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.accelerometer_xyz,
            args=[self.sql_columns.accelerometer_xyz],
            grid=[2, 31],
            align="left")

        self.checkbox_mag = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.magnetometer_xyz,
            args=[self.sql_columns.magnetometer_xyz],
            grid=[2, 32],
            align="left")

        self.checkbox_gyro = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.gyroscope_xyz,
            args=[self.sql_columns.gyroscope_xyz],
            grid=[2, 33],
            align="left")

        self.text_space4 = guizero.Text(self.window,
                                        text=" ",
                                        grid=[1, 45],
                                        align="right")

        self.button_send_to_display = guizero.PushButton(
            self.window,
            text="Show Reading\non Remote\nSensor Display",
            command=self._remote_sensor_display_selection,
            grid=[1, 46, 2, 1],
            align="top")

        # Window Tweaks
        self.window.tk.resizable(False, False)
        self.checkbox_default_offset.value = 1
        self._set_config()
        self._click_checkbox_offset()
        self.checkbox_up_time.value = 0
        self.checkbox_temperature.value = 0
        self.checkbox_pressure.value = 0
        self.checkbox_humidity.value = 0
        self.checkbox_lumen.value = 0
        self.checkbox_colour.value = 0
    def __init__(self, app, ip_selection, current_config, database_or_sensor):
        self.database_or_sensor = database_or_sensor
        self.current_config = current_config
        self.ip_selection = ip_selection
        self.selected_ip = ""
        self.db_location = ""
        self.database_notes = []
        self.database_notes_dates = []
        self.database_user_note_dates = []

        self.text_variables_generic = CreateGenericNoteVariables()
        self.text_variables_sensor = CreateSensorNoteVariables()
        self.text_variables_database = CreateDatabaseNoteVariables()

        self.sql_column_names = app_variables.CreateSQLColumnNames()
        self.network_send_commands = app_variables.CreateNetworkSendCommands()
        self.sensor_get_commands = app_variables.CreateNetworkGetCommands()

        self.window = guizero.Window(app,
                                     title=self.text_variables_database.window_title,
                                     width=580,
                                     height=525,
                                     layout="grid",
                                     visible=False)

        self.text_connected_to = guizero.Text(self.window,
                                              text=self.text_variables_database.text_connected_to,
                                              color="red",
                                              size=8,
                                              grid=[1, 1, 3, 1],
                                              align="left")

        self.checkbox_use_current_datetime = guizero.CheckBox(self.window,
                                                              text=self.text_variables_generic.checkbox_enable_datetime,
                                                              command=self._reset_datetime,
                                                              grid=[4, 1, 5, 1],
                                                              align="left")

        self.button_connect = guizero.PushButton(self.window,
                                                 text=self.text_variables_database.button_connect,
                                                 command=self._open_database,
                                                 grid=[1, 5],
                                                 align="left")

        self.button_back_note = guizero.PushButton(self.window,
                                                   text="Back",
                                                   command=self._back_button,
                                                   grid=[2, 5],
                                                   align="left")

        self.text_note_current = guizero.Text(self.window,
                                              text=self.text_variables_generic.text_note_current,
                                              color="blue",
                                              grid=[3, 5],
                                              align="top")

        self.textbox_on_number_notes = guizero.TextBox(self.window,
                                                       text="0",
                                                       width=5,
                                                       grid=[3, 5],
                                                       align="bottom")

        self.text_date_label1 = guizero.Text(self.window,
                                             text=self.text_variables_generic.text_date_label1,
                                             color="blue",
                                             grid=[4, 5],
                                             align="top")

        self.textbox_note_date = guizero.TextBox(self.window,
                                                 text=self.text_variables_generic.textbox_note_date,
                                                 grid=[4, 5],
                                                 width=23,
                                                 align="bottom")

        self.text_total_notes_label = guizero.Text(self.window,
                                                   text=self.text_variables_generic.text_total_notes_label,
                                                   color="blue",
                                                   grid=[5, 5],
                                                   align="top")

        self.textbox_total_notes = guizero.TextBox(self.window,
                                                   text="0",
                                                   width=5,
                                                   grid=[5, 5],
                                                   align="bottom")

        self.button_next_note = guizero.PushButton(self.window,
                                                   text=self.text_variables_generic.button_next_note,
                                                   command=self._next_button,
                                                   grid=[6, 5],
                                                   align="left")

        self.textbox_current_note = guizero.TextBox(self.window,
                                                    text=self.text_variables_database.textbox_current_note,
                                                    width=70,
                                                    height=25,
                                                    grid=[1, 10, 6, 1],
                                                    multiline=True,
                                                    scrollbar=True,
                                                    align="left")

        self.button_new_note = guizero.PushButton(self.window,
                                                  text=self.text_variables_generic.button_new_note,
                                                  command=self._database_add_note_button,
                                                  grid=[1, 12],
                                                  align="left")

        self.button_delete_note = guizero.PushButton(self.window,
                                                     text=self.text_variables_generic.button_delete_note,
                                                     command=self._database_delete_button,
                                                     grid=[4, 12],
                                                     align="left")

        self.button_update_note = guizero.PushButton(self.window,
                                                     text=self.text_variables_generic.button_update_note,
                                                     command=self._database_update_note_button,
                                                     grid=[5, 12, 2, 1],
                                                     align="left")

        # Window Tweaks
        self.window.tk.resizable(False, False)
        self._disable_notes_window_functions()
        self.checkbox_use_current_datetime.value = True
        self.textbox_current_note.bg = "black"
        self.textbox_current_note.text_color = "white"
        self.textbox_current_note.tk.config(insertbackground="red")

        if database_or_sensor == self.text_variables_generic.sensor_notes_verification:
            self._change_for_sensor()
    def __init__(self, app, ip_selection, current_config):
        self.ip_selection = ip_selection
        self.current_config = current_config
        self.readable_column_names = app_variables.CreateSQLColumnsReadable()
        self.sql_columns = app_variables.CreateSQLColumnNames()

        self.window = guizero.Window(app,
                                     title="Graphing",
                                     width=280,
                                     height=580,
                                     layout="grid",
                                     visible=False)

        self.text_sensor_type_name = guizero.Text(self.window,
                                                  text="Data Source",
                                                  color='blue',
                                                  grid=[1, 1, 2, 1],
                                                  align="top")

        self.radio_sensor_type = guizero.ButtonGroup(
            self.window,
            options=["Live Sensor", "SQL Database"],
            horizontal="True",
            command=self._radio_source_selection,
            grid=[1, 2, 2, 1],
            align="top")

        self.text_space3 = guizero.Text(self.window,
                                        text="SQL Recording Type",
                                        color="blue",
                                        grid=[1, 3, 2, 1],
                                        align="top")

        self.radio_recording_type_selection = guizero.ButtonGroup(
            self.window,
            options=["Interval", "Triggers"],
            horizontal="True",
            command=self._radio_sql_type_selection,
            grid=[1, 4, 2, 1],
            align="top")

        self.text_sensor_type_name = guizero.Text(self.window,
                                                  text="Graph Options",
                                                  color='blue',
                                                  grid=[1, 6, 2, 1],
                                                  align="top")

        self.text_space2 = guizero.Text(self.window,
                                        text="YYYY-MM-DD HH:MM:SS",
                                        size=7,
                                        color='#CB0000',
                                        grid=[2, 7, 2, 1],
                                        align="left")

        self.text_start = guizero.Text(self.window,
                                       text="Start Date & Time: ",
                                       color='green',
                                       grid=[1, 8],
                                       align="left")

        self.textbox_start = guizero.TextBox(self.window,
                                             text="",
                                             width=20,
                                             grid=[2, 8],
                                             align="left")

        self.text_end = guizero.Text(self.window,
                                     text="End Date & Time:",
                                     color='green',
                                     grid=[1, 9],
                                     align="left")

        self.textbox_end = guizero.TextBox(self.window,
                                           text="",
                                           width=20,
                                           grid=[2, 9],
                                           align="left")

        self.text_sql_skip = guizero.Text(self.window,
                                          text="Plot Data - Skip:  ",
                                          color='green',
                                          grid=[1, 10],
                                          align="right")

        self.textbox_sql_skip = guizero.TextBox(self.window,
                                                text="",
                                                width=10,
                                                grid=[2, 10],
                                                align="left")

        self.text_sql_skip2 = guizero.Text(self.window,
                                           text=" Plot 1    ",
                                           color='green',
                                           grid=[2, 10],
                                           align="right")

        self.text_temperature_offset = guizero.Text(self.window,
                                                    text="Env Temp Offset:",
                                                    color='green',
                                                    grid=[1, 11],
                                                    align="left")

        self.textbox_temperature_offset = guizero.TextBox(self.window,
                                                          text="",
                                                          width=5,
                                                          grid=[2, 11],
                                                          align="left")

        self.checkbox_default_offset = guizero.CheckBox(
            self.window,
            text="Use Sensor\nDefault",
            command=self._click_checkbox_offset,
            grid=[2, 11],
            align="right")

        self.text_refresh_time = guizero.Text(self.window,
                                              text="Live refresh (Sec):",
                                              color='green',
                                              grid=[1, 12],
                                              align="left")

        self.textbox_refresh_time = guizero.TextBox(self.window,
                                                    text="2",
                                                    width=5,
                                                    grid=[2, 12],
                                                    align="left")

        self.checkbox_master = guizero.CheckBox(self.window,
                                                text="All Sensors",
                                                command=self._master_checkbox,
                                                grid=[1, 16, 2, 1],
                                                align="top")

        self.checkbox_up_time = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.system_uptime,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.system_uptime],
            grid=[1, 17],
            align="left")

        self.checkbox_cpu_temp = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.cpu_temp,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.cpu_temp],
            grid=[1, 18],
            align="left")

        self.checkbox_env_temperature = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.environmental_temp,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.environmental_temp],
            grid=[1, 19],
            align="left")

        self.checkbox_pressure = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.pressure,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.pressure],
            grid=[1, 20],
            align="left")

        self.checkbox_altitude = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.altitude,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.altitude],
            grid=[1, 21],
            align="left")

        self.checkbox_humidity = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.humidity,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.humidity],
            grid=[1, 22],
            align="left")

        self.checkbox_distance = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.distance,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.distance],
            grid=[1, 23],
            align="left")

        self.checkbox_gas = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.gas,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.gas],
            grid=[1, 24],
            align="left")

        self.checkbox_particulate_matter = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.particulate_matter,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.particulate_matter],
            grid=[2, 17],
            align="left")

        self.checkbox_lumen = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.lumen,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.lumen],
            grid=[2, 18],
            align="left")

        self.checkbox_colour = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.colours,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.rgb],
            grid=[2, 19],
            align="left")

        self.checkbox_ultra_violet = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.ultra_violet,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.ultra_violet],
            grid=[2, 20],
            align="left")

        self.checkbox_acc = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.accelerometer_xyz,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.accelerometer_xyz],
            grid=[2, 21],
            align="left")

        self.checkbox_mag = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.magnetometer_xyz,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.magnetometer_xyz],
            grid=[2, 22],
            align="left")

        self.checkbox_gyro = guizero.CheckBox(
            self.window,
            text=self.readable_column_names.gyroscope_xyz,
            command=self._disable_other_checkboxes,
            args=[self.sql_columns.gyroscope_xyz],
            grid=[2, 23],
            align="left")

        self.text_space4 = guizero.Text(self.window,
                                        text=" ",
                                        grid=[1, 35],
                                        align="right")

        self.button_live = guizero.PushButton(
            self.window,
            text="Create Graph",
            command=self._create_graph_button,
            grid=[1, 36, 2, 1],
            align="top")

        # Window Tweaks
        self.window.tk.resizable(False, False)
        self.checkbox_default_offset.value = 1
        self._set_config()
        self._radio_source_selection()
        self._click_checkbox_offset()
        self.checkbox_up_time.value = 0
        self.checkbox_env_temperature.value = 0
        self.checkbox_pressure.value = 0
        self.checkbox_humidity.value = 0
        self.checkbox_lumen.value = 0
        self.checkbox_colour.value = 0

        # Temp disable radio box until triggers working
        self.radio_recording_type_selection.disable()
Пример #6
0
    def __init__(self, app, current_config, ip_selection):
        self.current_config = current_config
        self.ip_selection = ip_selection
        self.window = guizero.Window(app,
                                     title="Control Center Configuration",
                                     width=580,
                                     height=300,
                                     layout="grid",
                                     visible=False)

        self.button_reset = guizero.PushButton(self.window,
                                               text="Reset to\nDefaults",
                                               command=self._reset_to_defaults,
                                               grid=[1, 1],
                                               align="right")

        self.checkbox_power_controls = guizero.CheckBox(
            self.window,
            text="Enable 'Reset to Defaults'",
            command=self._enable_config_reset,
            grid=[1, 1],
            align="top")

        self.button_save_apply = guizero.PushButton(
            self.window,
            text="Save",
            command=self._button_save_apply,
            grid=[1, 1],
            align="left")

        self.text3 = guizero.Text(self.window,
                                  text="Save files to",
                                  color='blue',
                                  grid=[1, 2],
                                  align="left")

        self.textbox_save_to = guizero.TextBox(self.window,
                                               text='',
                                               width=50,
                                               grid=[1, 3],
                                               align="bottom")

        self.button_save_dir = guizero.PushButton(self.window,
                                                  text="Choose Folder",
                                                  command=self._button_save_to,
                                                  grid=[1, 4],
                                                  align="left")

        self.button_set_http_auth = guizero.PushButton(
            self.window,
            text="Set Sensors Authentication",
            command=self._update_http_authentication_credentials,
            grid=[1, 4],
            align="right")

        self.checkbox_enable_open_gl_plotly = guizero.CheckBox(
            self.window,
            text="Render Plotly with OpenGL",
            grid=[1, 5],
            align="top")

        self.text_info = guizero.Text(self.window,
                                      text="Default graph date range",
                                      color='blue',
                                      grid=[1, 6],
                                      align="top")

        self.text_spacer3 = guizero.Text(self.window,
                                         text="YYYY-MM-DD HH:MM:SS",
                                         size=7,
                                         color='#CB0000',
                                         grid=[1, 7],
                                         align="right")

        self.text_start = guizero.Text(self.window,
                                       text="         Start DateTime: ",
                                       color='green',
                                       grid=[1, 8],
                                       align="left")

        self.textbox_start = guizero.TextBox(self.window,
                                             text="",
                                             width=20,
                                             grid=[1, 8],
                                             align="right")

        self.text_end = guizero.Text(self.window,
                                     text="         End DateTime: ",
                                     color='green',
                                     grid=[1, 9],
                                     align="left")

        self.textbox_end = guizero.TextBox(self.window,
                                           text="",
                                           width=20,
                                           grid=[1, 9],
                                           align="right")

        self.text_live_refresh = guizero.Text(
            self.window,
            text="Live graph refresh in seconds: ",
            color='green',
            grid=[1, 10],
            align="left")

        self.textbox_live_refresh = guizero.TextBox(self.window,
                                                    text="",
                                                    width=5,
                                                    grid=[1, 10],
                                                    align="right")

        self.text_database_time = guizero.Text(
            self.window,
            text="Sensor Databases are\nsaved in UTC 0",
            size=10,
            grid=[2, 1],
            color='#CB0000',
            align="top")

        self.text_time_offset2 = guizero.Text(self.window,
                                              text="DateTime offset in hours",
                                              color='blue',
                                              grid=[2, 1],
                                              align="bottom")

        self.textbox_time_offset = guizero.TextBox(self.window,
                                                   text="",
                                                   width="5",
                                                   grid=[2, 2],
                                                   align="bottom")

        self.text_sql_skip = guizero.Text(
            self.window,
            text="Graph sensor data every 'X' entries",
            color='blue',
            grid=[2, 3],
            align="top")

        self.textbox_sql_skip = guizero.TextBox(self.window,
                                                text="",
                                                width="5",
                                                grid=[2, 4],
                                                align="top")

        self.text_temperature_offset = guizero.Text(
            self.window,
            text="Manual temperature offset in °C",
            color='blue',
            grid=[2, 4],
            align="bottom")

        self.textbox_temperature_offset = guizero.TextBox(self.window,
                                                          text="",
                                                          width="5",
                                                          grid=[2, 5],
                                                          align="bottom")

        self.text_network_timeouts = guizero.Text(
            self.window,
            text="Network timeouts in seconds",
            color='blue',
            grid=[2, 6],
            align="top")

        self.text_network_timeouts1 = guizero.Text(self.window,
                                                   text="Sensor checks",
                                                   color='green',
                                                   grid=[2, 7],
                                                   align="top")

        self.textbox_network_check = guizero.TextBox(self.window,
                                                     text="",
                                                     width="5",
                                                     grid=[2, 8],
                                                     align="top")

        self.text_network_timeouts2 = guizero.Text(self.window,
                                                   text="Sensor data",
                                                   color='green',
                                                   grid=[2, 9],
                                                   align="top")

        self.textbox_network_details = guizero.TextBox(self.window,
                                                       text="",
                                                       width="5",
                                                       grid=[2, 10],
                                                       align="top")

        # Window Tweaks
        self.window.tk.resizable(False, False)
        self.set_config(self.current_config)
        self.textbox_save_to.disable()
        self._enable_config_reset()