Example #1
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)
Example #2
0
    def _resolve_sender(sender: str) -> Any:
        if dpgcore.does_item_exist(sender):
            if sender in _ITEM_LOOKUP:
                return _ITEM_LOOKUP[sender]

            # warning, this will segfault if sender does not exist!
            sender_type = dpgcore.get_item_type(sender)
            return _create_item_wrapper(sender, sender_type)
Example #3
0
def try_get_item_by_id(widget_id: int) -> Optional[Widget]:
    """Retrieve an item using its unique name or ``None``.

    Similar to :func:`.get_item_by_id`, but returns ``None`` if the wrapper object could not be retrieved."""
    if not dpgcore.does_item_exist(widget_id):
        return None

    item = _ITEM_LOOKUP.get(widget_id)
    if item is not None:
        return item

    item_type = dpgcore.get_item_type(
        widget_id)  ## WARNING: this will segfault if name does not exist
    return _create_item_wrapper(widget_id, item_type)
Example #4
0
def get_item_by_id(widget_id: int) -> Widget:
    """Retrieve an item using its unique name.

    If the item was created by instantiating a :class:`.Widget` object, this will return that
    object. Otherwise, a new wrapper object will be created for that item and returned. Future calls
    for the same ID will return the same object.

    Raises:
        KeyError: if name refers to an item that is invalid (deleted) or does not exist.
    """
    if not dpgcore.does_item_exist(widget_id):
        raise KeyError(f"widget with id={widget_id} does not exist")

    item = _ITEM_LOOKUP.get(widget_id)
    if item is not None:
        return item

    item_type = dpgcore.get_item_type(
        widget_id)  ## WARNING: this will segfault if name does not exist
    return _create_item_wrapper(widget_id, item_type)
Example #5
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)
Example #6
0
 def is_valid(self) -> bool:
     """This property is ``False`` if the GUI item has been deleted."""
     return dpgcore.does_item_exist(self.id)