Пример #1
0
def add_file_if_new(file):

    items = dpg.get_item_configuration(files_id)["items"]
    new_items = [file]
    for item in items:

        if item != file:
            new_items.append(item)

    dpg.configure_item(files_id, items=new_items)
Пример #2
0
 def set_widget_configuration(self, **kwargs):
     # if any value is widget then get its dpg_id
     _new_kwargs = {}
     for _k in kwargs.keys():
         _v = kwargs[_k]
         if isinstance(_v, Widget):
             _v = _v.dpg_id
         _new_kwargs[_k] = _v
     # configure
     dpg.configure_item(item=self.dpg_id, **_new_kwargs)
Пример #3
0
    def testBindDragPayload(self):
        def testy(sender, app, user):
            print(f"Sender: {dpg.get_item_type(sender)} {sender}, App Data: {app}, User Data:{user}")

        for item in self.test_bind_items:
            # uncomment these to find where it fails
            #print(f'[TestDragDrop] Attempting bind {dpg.get_item_type(item)}')
            dpg.configure_item(item, payload_type="str", drop_callback=testy, drag_callback=testy)
            with dpg.drag_payload(parent=item, drop_data="dropped", drag_data="dragged", user_data="user data", payload_type="str"):
                dpg.add_text(dpg.get_item_type(item))
                dpg.add_text(f"Item ID: {item}")
Пример #4
0
    def add_row(self, row_content: list[any]):
        self.ssh_info[row_content[1]] = {}
        with dpg.table_row(parent=self.id):
            for i, item in enumerate(row_content):
                item_name = f"##{self.name}_{self.row}_{self.column}"

                if i > 1:
                    self.ssh_info[row_content[1]][self.header[i]] = item
                if type(item) is str:
                    self.rows_ids[item_name] = dpg.add_input_text(
                        label=item_name,
                        default_value=item,
                        width=-1,
                        callback=self.on_edit)
                if type(item) is int:
                    self.rows_ids[item_name] = dpg.add_input_int(
                        label=item_name,
                        default_value=item,
                        width=-1,
                        step=0,
                        callback=self.on_edit)
                if type(item) is float:
                    self.rows_ids[item_name] = dpg.add_input_float(
                        label=item_name,
                        default_value=item,
                        width=-1,
                        step=0,
                        callback=self.on_edit)
                if type(item) is bool:
                    self.rows_ids[item_name] = dpg.add_checkbox(
                        label=item_name, default_value=False)
                if i == 1:
                    dpg.configure_item(self.rows_ids[item_name], enabled=False)
                if i == 6:
                    with dpg.tooltip(self.rows_ids[item_name]):
                        dpg.add_text(
                            "If the password is 'None' for the local machine\'s IP then the \n"
                            'local machine does not need to run an SSH server and the \n'
                            'communication between computers happens through normal sockets. \n'
                            'If there is a password other than "None" then Heron assumes an \n'
                            'SSH server is running on the local machine and all data and \n'
                            'parameters are passed through SSH tunnels.\nWARNING! '
                            'The SSH tunneling is slow and results in constant dropping of\n'
                            'data packets!')
                self.column += 1

            with dpg.table_row(parent=self.id):
                sep_name = f"##{self.name}_{self.row}_sep"
                self.rows_ids[sep_name] = dpg.add_separator(label=sep_name)

        self.num_of_rows += 1
        self.row += 1
        self.column = 0
Пример #5
0
def update_control_graph_buttons(is_graph_running):
    """
    Used to enable and disable (grey out) the Start Graph or the End Graph according to whether the Graph is running or
    not
    :param is_graph_running: Is the graph running bool
    :return: Nothing
    """
    with dpg.theme() as theme_active:
        with dpg.theme_component(0):
            dpg.add_theme_color(dpg.mvThemeCol_Button, [50, 50, 180, 255], category=dpg.mvThemeCat_Core)

    with dpg.theme() as theme_non_active:
        with dpg.theme_component(0):
            dpg.add_theme_color(dpg.mvThemeCol_Button, [150, 150, 150, 255], category=dpg.mvThemeCat_Core)

    if is_graph_running:
        dpg.configure_item(start_graph_button_id, enabled=False)
        dpg.bind_item_theme(start_graph_button_id, theme_non_active)
        dpg.configure_item(end_graph_button_id, enabled=True)
        dpg.bind_item_theme(end_graph_button_id, theme_active)
    else:
        dpg.configure_item(start_graph_button_id, enabled=True)
        dpg.bind_item_theme(start_graph_button_id, theme_active)
        dpg.configure_item(end_graph_button_id, enabled=False)
        dpg.bind_item_theme(end_graph_button_id, theme_non_active)
Пример #6
0
def ignore():

    file = dpg.get_value(files_id)
    if file is not None:
        items = dpg.get_item_configuration(files_id)["items"]
        ignore_files = dpg.get_item_configuration(ignore_id)["items"]
        ignore_files.append(file)
        dpg.configure_item(ignore_id, items=ignore_files)
        index = -1
        found_index = 0
        for item in items:
            index += 1
            if item == file:
                found_index = index
                break
        del items[found_index]
        dpg.configure_item(files_id, items=items)
    callback(None)
Пример #7
0
 def update_ssh_combo_boxes(self):
     dpg.configure_item(self.extra_window_id, show=True)
     self.get_ssh_server_names_and_ids()
     if dpg.does_item_exist(self.parameter_inputs_ids['SSH local server']):
         dpg.configure_item(self.parameter_inputs_ids['SSH local server'],
                            items=self.ssh_server_id_and_names)
     if dpg.does_item_exist(self.parameter_inputs_ids['SSH remote server']):
         dpg.configure_item(self.parameter_inputs_ids['SSH remote server'],
                            items=self.ssh_server_id_and_names)
Пример #8
0
    def __init__(self,
                 *,
                 id: Optional[int] = 0,
                 callback: PyGuiCallback = None,
                 **kwargs: Any):
        id = id or 0

        if dpgcore.does_item_exist(id):
            self._widget_id = id
            self.__setup_preexisting__()
        else:
            # at no point should a Widget object exist for an item that hasn't
            # actually been added, so if the item doesn't exist we need to add it now.

            # subclasses will pass both config values and keywords to __setup_add_widget__()
            # separate them now
            config_props = self._get_config_properties()
            config_args = {}
            for name, value in list(kwargs.items()):
                prop = config_props.get(name)
                if prop is not None and not prop.no_init:
                    config_args[prop] = kwargs.pop(name)

            # just keywords left in kwargs
            self._widget_id = self.__setup_add_widget__(kwargs)

            config_data = {}
            for prop, value in config_args.items():
                config_data.update(prop.fconfig(self, value))

            dpgcore.configure_item(self.id, **config_data)

            if callback is not None:
                self.set_callback(callback)

        _register_item(self)
def make_data_run( phase ):
    global X
    global Y
    global Z
    t = np.linspace(0,2*np.pi, 100)
    X = np.cos(t + np.radians(phase) )
    Y = np.sin(2*t + np.radians(phase) )
    Z = np.cos(t + np.radians(phase) )*np.sin(t + np.radians(phase) )
    
    dpg.configure_item("X_value", x = t, y = X )
    dpg.configure_item("Y_value", x = t, y = Y )
    dpg.configure_item("Z_value", x = t, y = Z )
def att_data_run( x_val, y_val, z_val ):
    global X
    global Y 
    global Z
    
    t = np.linspace(0,2*np.pi, 100)
    
    X.append(x_val)
    X.pop(0)
    
    Y.append(y_val)
    Y.pop(0)
    
    Z.append(z_val)
    Z.pop(0)

    dpg.configure_item("X_value", x = t, y = X )
    dpg.configure_item("Y_value", x = t, y = Y )
    dpg.configure_item("Z_value", x = t, y = Z )
Пример #11
0
def search_directory():

    header_files = []
    cpp_files = []
    other_files = []
    include_directories.clear()
    for dirName, subdirList, fileList in os.walk(dpg.get_value(root_id)):
        include_directories.append(dirName + "/")
        for fname in fileList:
            if fname.endswith(".h"):
                header_files.append(fname)
            elif fname.endswith(".cpp"):
                cpp_files.append(fname)
            else:
                other_files.append(fname)

    dpg.configure_item(headers_id, items=header_files)
    dpg.configure_item(cpp_id, items=cpp_files)
    dpg.configure_item(other_id, items=other_files)
    dpg.show_item(all_files_id)
def update_image(sender, app_data, user_data):
    image, controls = user_data
    kwargs = {}
    for k, v in controls.items():
        kwargs[k] = dpg.get_value(v)
    dpg.configure_item(image, **kwargs)
def resize_group( sender, data, user ):
    dpg.configure_item('Ploter', height = data[1], width = data[0] ) 
    dpg.configure_item('Graph', height = data[1]*0.9, width = data[0]*0.9, pos=[ data[0]*0.05, data[1]*0.05] ) 
Пример #14
0
 def set_config(self, **config: Any) -> None:
     dpgcore.configure_item(self.id, **config)
def main(port):
    # Should be configurable or whatever, for the other pad protocols
    serial = SerialProtoGF('/dev/ttyACM0')

    # Fetch the pad config / base settings
    # [panel no] = list[sensor indices]
    panel_mapping = get_panel_mapping(serial)
    trigger_values = serial.command_get_trigger_values()
    schmitt_values = serial.command_get_trigger_schmitt_values()

    dpg.create_context()
    dpg.create_viewport(title="ITGaz's Awesome Pad GUI",
                        width=800,
                        height=600,
                        resizable=False,
                        decorated=True)
    dpg.setup_dearpygui()

    vals_raw = [0 for x in trigger_values]

    with dpg.window(label="",
                    width=800,
                    height=600,
                    no_resize=True,
                    no_title_bar=True,
                    no_move=True):
        dpg.add_text("LEFT:")
        with dpg.group(horizontal=True):
            for s in panel_mapping[PANEL_P1LEFT]:
                dpg.add_slider_float(no_input=True,
                                     vertical=False,
                                     tag=f"sensorbar_{s}",
                                     width=300)
                dpg.add_checkbox(tag=f"sensortriggered_{s}")

        dpg.add_text("DOWN:")
        with dpg.group(horizontal=True):
            for s in panel_mapping[PANEL_P1DOWN]:
                dpg.add_slider_float(no_input=True,
                                     vertical=False,
                                     tag=f"sensorbar_{s}",
                                     width=300)
                dpg.add_checkbox(tag=f"sensortriggered_{s}")

        dpg.add_text("UP:")
        with dpg.group(horizontal=True):
            for s in panel_mapping[PANEL_P1UP]:
                dpg.add_slider_float(no_input=True,
                                     vertical=False,
                                     tag=f"sensorbar_{s}",
                                     width=300)
                dpg.add_checkbox(tag=f"sensortriggered_{s}")

        dpg.add_text("RIGHT:")
        with dpg.group(horizontal=True):
            for s in panel_mapping[PANEL_P1RIGHT]:
                dpg.add_slider_float(no_input=True,
                                     vertical=False,
                                     tag=f"sensorbar_{s}",
                                     width=300)
                dpg.add_checkbox(tag=f"sensortriggered_{s}")

    dpg.show_viewport()
    # dpg.start_dearpygui()

    while dpg.is_dearpygui_running():
        vals_raw = serial.command_get_values_raw()
        vals_raw_min = serial.command_get_values_raw_min()
        vals_filtered = serial.command_get_values_filtered()
        triggered = serial.command_get_triggered()

        for s, v in enumerate(vals_filtered):
            slider_tag = f"sensorbar_{s}"
            triggered_tag = f"sensortriggered_{s}"

            # slider_config = dpg.get_item_configuration(tag)
            slider_min = 0
            slider_max = 1024
            # slider_min = min(slider_config['min_value'], vals_raw_min[s])
            # slider_max = max(slider_config['max_value'], vals_raw[s])
            dpg.configure_item(slider_tag,
                               min_value=slider_min,
                               max_value=slider_max)
            dpg.set_value(slider_tag, v)
            dpg.set_value(triggered_tag, triggered[s])

        # render_ui(panel_mapping, trigger_values, schmitt_values, vals_raw, vals_raw_min, vals_filtered, triggered)
        dpg.render_dearpygui_frame()
        time.sleep(0.05)

    dpg.destroy_context()
Пример #16
0
 def __set__(self, instance: Widget, value: Any) -> None:
     config = self.fconfig(instance, value)
     dpgcore.configure_item(instance.id, **config)
Пример #17
0
def callback_dvd(sender, app_data, user_data):
    dpg.configure_item(user_data, show=True)