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")
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()
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()