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)
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)
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)
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)
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 is_valid(self) -> bool: """This property is ``False`` if the GUI item has been deleted.""" return dpgcore.does_item_exist(self.id)