MCPcopy Index your code
hub / github.com/PySimpleGUI/PySimpleGUI / _treeview_double_click

Method _treeview_double_click

PySimpleGUI/PySimpleGUI.py:9009–9083  ·  view source on GitHub ↗

Not user callable. Callback function that is called when something is double-clicked to edit cell in table. :param event: event information from tkinter :type event: (unknown)

(self, event)

Source from the content-addressed store, hash-verified

9007 _exit_mainloop(self.ParentForm, self)
9008
9009 def _treeview_double_click(self, event):
9010 """
9011 Not user callable. Callback function that is called when something is double-clicked to edit cell in table.
9012
9013 :param event: event information from tkinter
9014 :type event: (unknown)
9015 """
9016
9017 def on_focus_out(table, widget, event, item, column, value_type):
9018 # Update the Treeview with the new value
9019 # Make sure the value type matches what was previously there
9020 table_row = int(item) - 1
9021 table_col = int(column[1:]) - 1
9022 new_value = value_type(widget.entry.get())
9023 col_index = int(column[1:]) - 1
9024 current_values = list(widget.item(item, "values"))
9025 current_values[col_index] = new_value
9026 widget.item(item, values=current_values)
9027 table.Values[table_row][table_col] = new_value
9028 # Destroy the Entry widget
9029 if widget.entry:
9030 widget.entry.destroy()
9031 widget.entry = None
9032 if self.Key is not None:
9033 self.ParentForm.LastButtonClicked = (self.Key, TABLE_EDITED_INDICATOR, (table_row, table_col))
9034 else:
9035 self.ParentForm.LastButtonClicked = ''
9036 self.ParentForm.FormRemainedOpen = True
9037 _exit_mainloop(self.ParentForm, self)
9038
9039 def on_escape(table, widget, event, item, column, value_type):
9040 if widget.entry:
9041 widget.entry.destroy()
9042 widget.entry = None
9043
9044 if self.enable_cell_editing and not self.widget.entry: # if can edit and not already editing another cell
9045 region = self.widget.identify("region", event.x, event.y)
9046 if region == "cell":
9047 column = self.widget.identify_column(event.x)
9048 item = self.widget.identify_row(event.y)
9049 row = int(item) - 1
9050 col = int(column[1:]) - 1
9051 cell_box = self.widget.bbox(item, column)
9052 if self.disabled_cells is not None and (row, col) in self.disabled_cells:
9053 return
9054 if cell_box:
9055 self.widget.entry = tk.Entry(self.widget)
9056 self.widget.entry.config(justify=tk.RIGHT, font=self.font_used)
9057 if self.cell_edit_colors[0] not in (None, COLOR_SYSTEM_DEFAULT):
9058 self.widget.entry.config(foreground=self.cell_edit_colors[0])
9059 if self.cell_edit_colors[1] not in (None, COLOR_SYSTEM_DEFAULT):
9060 self.widget.entry.config(background=self.cell_edit_colors[1])
9061 if self.cell_edit_select_colors != (None, None):
9062 self.widget.entry.config(selectforeground=self.cell_edit_select_colors[0], selectbackground=self.cell_edit_select_colors[1])
9063
9064 self.widget.entry.place(x=cell_box[0], y=cell_box[1], width=cell_box[2], height=cell_box[3])
9065 # Populate the entry with the current value
9066 value = self.widget.item(item, "values")[col]

Callers

nothing calls this directly

Calls 3

_exit_mainloopFunction · 0.85
insertMethod · 0.80
bindMethod · 0.45

Tested by

no test coverage detected