You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
class demo(tk.Tk):
def init(self):
tk.Tk.init(self)
self.grid_columnconfigure(0, weight=1)
self.grid_rowconfigure(0, weight=1)
self.frame = tk.Frame(self)
self.frame.grid_columnconfigure(0, weight=1)
self.frame.grid_rowconfigure(0, weight=1)
self.sheet = Sheet(self.frame,
data=[[f"Row {r}, Column {c}\nnewline1\nnewline2" for c in range(50)] for r in range(max_row)])
self.sheet.dropdown(1, 1, values=['AAA', 'BBB', 'CCC'], set_value="BBB",selection_function=self.on_select_dropdown )
self.sheet.enable_bindings(
"single_select",
"drag_select",
"edit_cell",
"paste",
"cut",
"copy",
#"delete",
"select_all",
"column_select",
"row_select",
"column_width_resize",
"double_click_column_resize",
"arrowkeys",
"row_height_resize",
"double_click_row_resize",
"right_click_popup_menu",
"rc_select",
"rc_delete_row"
)
self.sheet.bind("", self.show_selected_cell)
self.sheet.extra_bindings("begin_edit_cell", self.begin_edit_cell)
self.sheet.edit_validation(self.validate_edits)
self.sheet.popup_menu_add_command("Say Hello", self.on_sayhello_click_button)
self.sheet.popup_menu_add_command("DELETE ROW", self.On_RC_Delete_Row)
self.sheet.popup_menu_add_command("INSERT ROW", self.ON_RC_Insert_Row)
self.frame.grid(row=0, column=0, sticky="nswe")
self.sheet.grid(row=0, column=0, sticky="nswe")
def show_selected_cell(self,event=None):
selected_cell = self.sheet.get_currently_selected()
print(f"Selected Cell: {selected_cell}")
# Bind the function to the sheet selection event
def on_select_dropdown(self,event):
print(f"select={event['value']}")
def on_sayhello_click_button(self, event=None):
print ("Hello World!")
def begin_edit_cell(self, event):
return event.value
def validate_edits(self, event):
# remove spaces from any cell edits, including paste
if isinstance(event.value, str) and event.value:
return event.value.replace(" ", "")
# Bind the function to the sheet selection event
def ON_RC_Insert_Row(self,event=None):
cur = self.sheet.get_currently_selected()
row = cur.row # get current select row to insert
self.InsertRow(row)
def On_RC_Delete_Row(self,event=None) :
cur = self.sheet.get_currently_selected() # get current select cells in sheet
from_r=cur.box.from_r # delete from row
upto_r=cur.box.upto_r # to row
self.DeleteRows(from_r,upto_r) #delete rows selected
#print(f"delete row from:{from_r} to {upto_r}")
self.AddRows() # add rows number of rows was delete
self.sheet.set_currently_selected(row=cur.row,column=cur.column) # set current select cell
def InsertRow(self,row):
self.sheet.insert_row(row=1,idx=row) #insert blank row at row position
self.sheet.delete_row(max_row) #delete last row of sheet
def DeleteRows(self,from_r,upto_r):
row_range=list(range(from_r,upto_r)) # create list of range from_r - upto_r
self.sheet.delete_rows(row_range) # delete rows from from_r to upto_r
def AddRows(self):
lastrow = self.sheet.get_total_rows() # lastrow = insert at last row in sheet
num_rowtoadd = max_row-lastrow # number rows to add = max_row-lastrow
self.sheet.insert_row(row=num_rowtoadd,idx=lastrow)
app = demo()
app.mainloop()
this error occur when delete row
like this
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\serms\AppData\Local\Programs\Python\Python312\Lib\tkinter_init_.py", line 1968, in call
return self.func(*args)
^^^^^^^^^^^^^^^^
File "H:\python\SermAccount.venv\Lib\site-packages\tksheet\main_table.py", line 4824, in rc_delete_rows
event_data = self.delete_rows_data(data_rows, event_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "H:\python\SermAccount.venv\Lib\site-packages\tksheet\main_table.py", line 4780, in delete_rows_data
event_data["options"] = self.pickle_options()
^^^^^^^^^^^^^^^^^^^^^
File "H:\python\SermAccount.venv\Lib\site-packages\tksheet\main_table.py", line 4700, in pickle_options
return pickle_obj(
^^^^^^^^^^^
TypeError: cannot pickle '_tkinter.tkapp' object
The text was updated successfully, but these errors were encountered:
This my test program
from tksheet import Sheet
import tkinter as tk
max_row=200
class demo(tk.Tk):
def init(self):
tk.Tk.init(self)
self.grid_columnconfigure(0, weight=1)
self.grid_rowconfigure(0, weight=1)
self.frame = tk.Frame(self)
self.frame.grid_columnconfigure(0, weight=1)
self.frame.grid_rowconfigure(0, weight=1)
self.sheet = Sheet(self.frame,
data=[[f"Row {r}, Column {c}\nnewline1\nnewline2" for c in range(50)] for r in range(max_row)])
self.sheet.dropdown(1, 1, values=['AAA', 'BBB', 'CCC'], set_value="BBB",selection_function=self.on_select_dropdown )
self.sheet.enable_bindings(
"single_select",
"drag_select",
"edit_cell",
"paste",
"cut",
"copy",
#"delete",
"select_all",
"column_select",
"row_select",
"column_width_resize",
"double_click_column_resize",
"arrowkeys",
"row_height_resize",
"double_click_row_resize",
"right_click_popup_menu",
"rc_select",
"rc_delete_row"
)
self.sheet.bind("", self.show_selected_cell)
self.sheet.extra_bindings("begin_edit_cell", self.begin_edit_cell)
app = demo()
app.mainloop()
this error occur when delete row
like this
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\serms\AppData\Local\Programs\Python\Python312\Lib\tkinter_init_.py", line 1968, in call
return self.func(*args)
^^^^^^^^^^^^^^^^
File "H:\python\SermAccount.venv\Lib\site-packages\tksheet\main_table.py", line 4824, in rc_delete_rows
event_data = self.delete_rows_data(data_rows, event_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "H:\python\SermAccount.venv\Lib\site-packages\tksheet\main_table.py", line 4780, in delete_rows_data
event_data["options"] = self.pickle_options()
^^^^^^^^^^^^^^^^^^^^^
File "H:\python\SermAccount.venv\Lib\site-packages\tksheet\main_table.py", line 4700, in pickle_options
return pickle_obj(
^^^^^^^^^^^
TypeError: cannot pickle '_tkinter.tkapp' object
The text was updated successfully, but these errors were encountered: