tksheet 7.5.1__tar.gz → 7.5.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {tksheet-7.5.1/tksheet.egg-info → tksheet-7.5.3}/PKG-INFO +1 -1
  2. {tksheet-7.5.1 → tksheet-7.5.3}/pyproject.toml +1 -1
  3. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/__init__.py +1 -1
  4. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/column_headers.py +18 -20
  5. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/find_window.py +3 -3
  6. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/main_table.py +30 -16
  7. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/row_index.py +18 -20
  8. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/sheet.py +19 -48
  9. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/text_editor.py +3 -2
  10. {tksheet-7.5.1 → tksheet-7.5.3/tksheet.egg-info}/PKG-INFO +1 -1
  11. {tksheet-7.5.1 → tksheet-7.5.3}/LICENSE.txt +0 -0
  12. {tksheet-7.5.1 → tksheet-7.5.3}/README.md +0 -0
  13. {tksheet-7.5.1 → tksheet-7.5.3}/setup.cfg +0 -0
  14. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/colors.py +0 -0
  15. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/constants.py +0 -0
  16. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/formatters.py +0 -0
  17. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/functions.py +0 -0
  18. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/other_classes.py +0 -0
  19. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/sheet_options.py +0 -0
  20. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/sorting.py +0 -0
  21. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/themes.py +0 -0
  22. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/tksheet_types.py +0 -0
  23. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet/top_left_rectangle.py +0 -0
  24. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet.egg-info/SOURCES.txt +0 -0
  25. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet.egg-info/dependency_links.txt +0 -0
  26. {tksheet-7.5.1 → tksheet-7.5.3}/tksheet.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tksheet
3
- Version: 7.5.1
3
+ Version: 7.5.3
4
4
  Summary: Tkinter table / sheet and treeview widget
5
5
  Author-email: ragardner <github@ragardner.simplelogin.com>
6
6
  License: Copyright (c) 2019 ragardner and open source contributors
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
  name = "tksheet"
7
7
  description = "Tkinter table / sheet and treeview widget"
8
8
  readme = "README.md"
9
- version = "7.5.1"
9
+ version = "7.5.3"
10
10
  authors = [{ name = "ragardner", email = "github@ragardner.simplelogin.com" }]
11
11
  requires-python = ">=3.8"
12
12
  license = {file = "LICENSE.txt"}
@@ -4,7 +4,7 @@
4
4
  tksheet - A Python tkinter table widget
5
5
  """
6
6
 
7
- __version__ = "7.5.1"
7
+ __version__ = "7.5.3"
8
8
 
9
9
  from .colors import (
10
10
  color_map,
@@ -24,6 +24,7 @@ from .functions import (
24
24
  event_dict,
25
25
  event_has_char_key,
26
26
  event_opens_dropdown_or_checkbox,
27
+ get_menu_kwargs,
27
28
  get_n2a,
28
29
  int_x_tuple,
29
30
  is_contiguous,
@@ -35,7 +36,7 @@ from .functions import (
35
36
  try_binding,
36
37
  wrap_text,
37
38
  )
38
- from .other_classes import DotDict, DraggedRowColumn, DropdownStorage, EventDataDict, TextEditorStorage
39
+ from .other_classes import DraggedRowColumn, DropdownStorage, EventDataDict, TextEditorStorage
39
40
  from .row_index import RowIndex
40
41
  from .sorting import sort_column, sort_rows_by_column, sort_tree_rows_by_column
41
42
  from .text_editor import TextEditor
@@ -1804,16 +1805,9 @@ class ColumnHeaders(tk.Canvas):
1804
1805
  w = self.MT.col_positions[c + 1] - x
1805
1806
  h = self.current_height + 1
1806
1807
  kwargs = {
1807
- "menu_kwargs": DotDict(
1808
- {
1809
- "font": self.ops.table_font,
1810
- "foreground": self.ops.popup_menu_fg,
1811
- "background": self.ops.popup_menu_bg,
1812
- "activebackground": self.ops.popup_menu_highlight_bg,
1813
- "activeforeground": self.ops.popup_menu_highlight_fg,
1814
- }
1815
- ),
1808
+ "menu_kwargs": get_menu_kwargs(self.ops),
1816
1809
  "sheet_ops": self.ops,
1810
+ "font": self.ops.header_font,
1817
1811
  "border_color": self.ops.header_selected_columns_bg,
1818
1812
  "text": text,
1819
1813
  "state": state,
@@ -2245,17 +2239,18 @@ class ColumnHeaders(tk.Canvas):
2245
2239
  self.MT._headers[datacn] = value
2246
2240
 
2247
2241
  def input_valid_for_cell(self, datacn: int, value: Any, check_readonly: bool = True) -> bool:
2248
- kwargs = self.get_cell_kwargs(datacn, key=None)
2249
- if check_readonly and "readonly" in kwargs:
2242
+ if check_readonly and self.get_cell_kwargs(datacn, key="readonly"):
2250
2243
  return False
2251
- elif "checkbox" in kwargs:
2244
+ elif self.get_cell_kwargs(datacn, key="checkbox"):
2252
2245
  return is_bool_like(value)
2253
2246
  else:
2254
2247
  return not (
2255
2248
  self.cell_equal_to(datacn, value)
2256
- or (kwargs := kwargs.get("dropdown", {}))
2257
- and kwargs["validate_input"]
2258
- and value not in kwargs["values"]
2249
+ or (
2250
+ (kwargs := self.get_cell_kwargs(datacn, key="dropdown"))
2251
+ and kwargs["validate_input"]
2252
+ and value not in kwargs["values"]
2253
+ )
2259
2254
  )
2260
2255
 
2261
2256
  def cell_equal_to(self, datacn: int, value: Any) -> bool:
@@ -2311,11 +2306,14 @@ class ColumnHeaders(tk.Canvas):
2311
2306
  return value
2312
2307
 
2313
2308
  def get_value_for_empty_cell(self, datacn: int, c_ops: bool = True) -> Any:
2314
- kwargs = self.get_cell_kwargs(datacn, key=None, cell=c_ops)
2315
- if "checkbox" in kwargs:
2309
+ if self.get_cell_kwargs(datacn, key="checkbox", cell=c_ops):
2316
2310
  return False
2317
- elif "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and kwargs["dropdown"]["values"]:
2318
- return kwargs["dropdown"]["values"][0]
2311
+ elif (
2312
+ (kwargs := self.get_cell_kwargs(datacn, key="dropdown", cell=c_ops))
2313
+ and kwargs["validate_input"]
2314
+ and kwargs["values"]
2315
+ ):
2316
+ return kwargs["values"][0]
2319
2317
  else:
2320
2318
  return ""
2321
2319
 
@@ -434,7 +434,7 @@ class FindWindow(tk.Frame):
434
434
  self.tktext.reset(
435
435
  menu_kwargs=menu_kwargs,
436
436
  sheet_ops=sheet_ops,
437
- font=menu_kwargs.font,
437
+ font=sheet_ops.table_font,
438
438
  bg=bg,
439
439
  fg=fg,
440
440
  select_bg=select_bg,
@@ -443,7 +443,7 @@ class FindWindow(tk.Frame):
443
443
  self.replace_tktext.reset(
444
444
  menu_kwargs=menu_kwargs,
445
445
  sheet_ops=sheet_ops,
446
- font=menu_kwargs.font,
446
+ font=sheet_ops.table_font,
447
447
  bg=bg,
448
448
  fg=fg,
449
449
  select_bg=select_bg,
@@ -459,7 +459,7 @@ class FindWindow(tk.Frame):
459
459
  self.replace_all,
460
460
  ):
461
461
  widget.config(
462
- font=menu_kwargs.font,
462
+ font=sheet_ops.table_font,
463
463
  bg=bg,
464
464
  fg=fg,
465
465
  highlightbackground=bg,
@@ -189,7 +189,7 @@ class MainTable(tk.Canvas):
189
189
  self.min_row_height = 0
190
190
  self.min_header_height = 0
191
191
  self.being_drawn_item = None
192
- self.extra_motion_func = None
192
+ self.extra_enter_func = None
193
193
  self.extra_b1_press_func = None
194
194
  self.extra_b1_motion_func = None
195
195
  self.extra_b1_release_func = None
@@ -389,7 +389,7 @@ class MainTable(tk.Canvas):
389
389
 
390
390
  def basic_bindings(self, enable: bool = True) -> None:
391
391
  bindings = (
392
- ("<Enter>", self, self.mouse_motion),
392
+ ("<Enter>", self, self.enter),
393
393
  ("<Configure>", self, self.window_configured),
394
394
  ("<ButtonPress-1>", self, self.b1_press),
395
395
  ("<B1-Motion>", self, self.b1_motion),
@@ -1222,7 +1222,7 @@ class MainTable(tk.Canvas):
1222
1222
  lastbox_numcols = lastbox_c2 - lastbox_c1
1223
1223
  if lastbox_numrows > new_data_numrows and not lastbox_numrows % new_data_numrows:
1224
1224
  repeat_num = int(lastbox_numrows / new_data_numrows)
1225
- data.extend(chain.from_iterable([r.copy() for r in data] for _ in range(repeat_num - 1)))
1225
+ data.extend(list(chain.from_iterable([r.copy() for r in data] for _ in range(repeat_num - 1))))
1226
1226
  new_data_numrows *= repeat_num
1227
1227
 
1228
1228
  if lastbox_numcols > new_data_numcols and not lastbox_numcols % new_data_numcols:
@@ -3662,11 +3662,11 @@ class MainTable(tk.Canvas):
3662
3662
  self.CH.rsz_w = None
3663
3663
  self.CH.rsz_h = None
3664
3664
 
3665
- def mouse_motion(self, event: Any) -> None:
3665
+ def enter(self, event: Any) -> None:
3666
3666
  self.config(cursor="")
3667
3667
  self.current_cursor = ""
3668
3668
  self.reset_resize_vars()
3669
- try_binding(self.extra_motion_func, event)
3669
+ try_binding(self.extra_enter_func, event)
3670
3670
 
3671
3671
  def not_currently_resizing(self) -> bool:
3672
3672
  return all(v is None for v in (self.RI.rsz_h, self.RI.rsz_w, self.CH.rsz_h, self.CH.rsz_w))
@@ -7587,6 +7587,7 @@ class MainTable(tk.Canvas):
7587
7587
  kwargs = {
7588
7588
  "menu_kwargs": get_menu_kwargs(self.PAR.ops),
7589
7589
  "sheet_ops": self.PAR.ops,
7590
+ "font": self.PAR.ops.table_font,
7590
7591
  "border_color": self.PAR.ops.table_selected_box_cells_fg,
7591
7592
  "text": text,
7592
7593
  "state": state,
@@ -8218,18 +8219,30 @@ class MainTable(tk.Canvas):
8218
8219
  return value
8219
8220
 
8220
8221
  def get_value_for_empty_cell(self, datarn: int, datacn: int, r_ops: bool = True, c_ops: bool = True) -> Any:
8221
- kwargs = self.get_cell_kwargs(
8222
+ if self.get_cell_kwargs(
8222
8223
  datarn,
8223
8224
  datacn,
8224
- key=None,
8225
+ key="checkbox",
8225
8226
  cell=r_ops and c_ops,
8226
8227
  row=r_ops,
8227
8228
  column=c_ops,
8228
- )
8229
- if "checkbox" in kwargs:
8229
+ ):
8230
8230
  return False
8231
- elif "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and kwargs["dropdown"]["values"]:
8232
- return kwargs["dropdown"]["values"][0]
8231
+ elif (
8232
+ (
8233
+ kwargs := self.get_cell_kwargs(
8234
+ datarn,
8235
+ datacn,
8236
+ key="dropdown",
8237
+ cell=r_ops and c_ops,
8238
+ row=r_ops,
8239
+ column=c_ops,
8240
+ )
8241
+ )
8242
+ and kwargs["validate_input"]
8243
+ and kwargs["values"]
8244
+ ):
8245
+ return kwargs["values"][0]
8233
8246
  else:
8234
8247
  return self.format_value(datarn, datacn, "")
8235
8248
 
@@ -8415,16 +8428,17 @@ class MainTable(tk.Canvas):
8415
8428
  check_readonly: bool = True,
8416
8429
  ignore_empty: bool = False,
8417
8430
  ) -> bool:
8418
- kwargs = self.get_cell_kwargs(datarn, datacn, key=None)
8419
- if check_readonly and "readonly" in kwargs:
8431
+ if check_readonly and self.get_cell_kwargs(datarn, datacn, key="readonly"):
8420
8432
  return False
8421
- elif "format" in kwargs:
8433
+ elif self.get_cell_kwargs(datarn, datacn, key="format"):
8422
8434
  return True
8423
8435
  elif self.cell_equal_to(datarn, datacn, value, ignore_empty=ignore_empty, check_fmt=False) or (
8424
- "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and value not in kwargs["dropdown"]["values"]
8436
+ (kwargs := self.get_cell_kwargs(datarn, datacn, key="dropdown"))
8437
+ and kwargs["validate_input"]
8438
+ and value not in kwargs["values"]
8425
8439
  ):
8426
8440
  return False
8427
- elif "checkbox" in kwargs:
8441
+ elif self.get_cell_kwargs(datarn, datacn, key="checkbox"):
8428
8442
  return is_bool_like(value)
8429
8443
  else:
8430
8444
  return True
@@ -26,6 +26,7 @@ from .functions import (
26
26
  event_dict,
27
27
  event_has_char_key,
28
28
  event_opens_dropdown_or_checkbox,
29
+ get_menu_kwargs,
29
30
  get_n2a,
30
31
  get_new_indexes,
31
32
  int_x_tuple,
@@ -39,7 +40,7 @@ from .functions import (
39
40
  try_binding,
40
41
  wrap_text,
41
42
  )
42
- from .other_classes import DotDict, DraggedRowColumn, DropdownStorage, EventDataDict, Node, TextEditorStorage
43
+ from .other_classes import DraggedRowColumn, DropdownStorage, EventDataDict, Node, TextEditorStorage
43
44
  from .sorting import sort_columns_by_row, sort_row
44
45
  from .text_editor import TextEditor
45
46
 
@@ -1976,16 +1977,9 @@ class RowIndex(tk.Canvas):
1976
1977
  w = self.current_width + 1
1977
1978
  h = self.MT.row_positions[r + 1] - y + 1
1978
1979
  kwargs = {
1979
- "menu_kwargs": DotDict(
1980
- {
1981
- "font": self.ops.index_font,
1982
- "foreground": self.ops.popup_menu_fg,
1983
- "background": self.ops.popup_menu_bg,
1984
- "activebackground": self.ops.popup_menu_highlight_bg,
1985
- "activeforeground": self.ops.popup_menu_highlight_fg,
1986
- }
1987
- ),
1980
+ "menu_kwargs": get_menu_kwargs(self.ops),
1988
1981
  "sheet_ops": self.ops,
1982
+ "font": self.ops.index_font,
1989
1983
  "border_color": self.ops.index_selected_rows_bg,
1990
1984
  "text": text,
1991
1985
  "state": state,
@@ -2414,17 +2408,18 @@ class RowIndex(tk.Canvas):
2414
2408
  self.MT._row_index[datarn] = value
2415
2409
 
2416
2410
  def input_valid_for_cell(self, datarn: int, value: Any, check_readonly: bool = True) -> bool:
2417
- kwargs = self.get_cell_kwargs(datarn, key=None)
2418
- if check_readonly and "readonly" in kwargs:
2411
+ if check_readonly and self.get_cell_kwargs(datarn, key="readonly"):
2419
2412
  return False
2420
- elif "checkbox" in kwargs:
2413
+ elif self.get_cell_kwargs(datarn, key="checkbox"):
2421
2414
  return is_bool_like(value)
2422
2415
  else:
2423
2416
  return not (
2424
2417
  self.cell_equal_to(datarn, value)
2425
- or (kwargs := kwargs.get("dropdown", {}))
2426
- and kwargs["validate_input"]
2427
- and value not in kwargs["values"]
2418
+ or (
2419
+ (kwargs := self.get_cell_kwargs(datarn, key="dropdown"))
2420
+ and kwargs["validate_input"]
2421
+ and value not in kwargs["values"]
2422
+ )
2428
2423
  )
2429
2424
 
2430
2425
  def cell_equal_to(self, datarn: int, value: Any) -> bool:
@@ -2487,11 +2482,14 @@ class RowIndex(tk.Canvas):
2487
2482
  if self.ops.treeview:
2488
2483
  iid = self.new_iid()
2489
2484
  return Node(text=iid, iid=iid, parent=self.get_row_parent(datarn))
2490
- kwargs = self.get_cell_kwargs(datarn, key=None, cell=r_ops)
2491
- if "checkbox" in kwargs:
2485
+ if self.get_cell_kwargs(datarn, key="checkbox", cell=r_ops):
2492
2486
  return False
2493
- elif "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and kwargs["dropdown"]["values"]:
2494
- return kwargs["dropdown"]["values"][0]
2487
+ elif (
2488
+ (kwargs := self.get_cell_kwargs(datarn, key="dropdown", cell=r_ops))
2489
+ and kwargs["validate_input"]
2490
+ and kwargs["values"]
2491
+ ):
2492
+ return kwargs["values"][0]
2495
2493
  else:
2496
2494
  return ""
2497
2495
 
@@ -703,7 +703,7 @@ class Sheet(tk.Frame):
703
703
  self.RI.extra_double_b1_func = func
704
704
  self.TL.extra_double_b1_func = func
705
705
  elif binding == "<Motion>":
706
- self.MT.extra_motion_func = func
706
+ self.MT.bind("<Motion>", func, add=add)
707
707
  self.CH.extra_motion_func = func
708
708
  self.RI.extra_motion_func = func
709
709
  self.TL.extra_motion_func = func
@@ -718,7 +718,10 @@ class Sheet(tk.Frame):
718
718
  else:
719
719
  self.bound_events[binding] = [func]
720
720
  else:
721
- self.MT.bind(binding, func, add=add)
721
+ if binding == "<Enter>":
722
+ self.MT.extra_enter_func = func
723
+ else:
724
+ self.MT.bind(binding, func, add=add)
722
725
  self.CH.bind(binding, func, add=add)
723
726
  self.RI.bind(binding, func, add=add)
724
727
  self.TL.bind(binding, func, add=add)
@@ -5497,17 +5500,8 @@ class Sheet(tk.Frame):
5497
5500
  readonly: bool = True,
5498
5501
  redraw: bool = False,
5499
5502
  ) -> Sheet:
5500
- if isinstance(rows, int):
5501
- rows = [rows]
5502
- if not readonly:
5503
- for r in rows:
5504
- if r in self.MT.row_options and "readonly" in self.MT.row_options[r]:
5505
- del self.MT.row_options[r]["readonly"]
5506
- else:
5507
- for r in rows:
5508
- if r not in self.MT.row_options:
5509
- self.MT.row_options[r] = {}
5510
- self.MT.row_options[r]["readonly"] = True
5503
+ for r in (rows,) if isinstance(rows, int) else rows:
5504
+ set_readonly(self.MT.row_options, r, readonly)
5511
5505
  return self.set_refresh_timer(redraw)
5512
5506
 
5513
5507
  def readonly_columns(
@@ -5516,17 +5510,8 @@ class Sheet(tk.Frame):
5516
5510
  readonly: bool = True,
5517
5511
  redraw: bool = False,
5518
5512
  ) -> Sheet:
5519
- if isinstance(columns, int):
5520
- columns = [columns]
5521
- if not readonly:
5522
- for c in columns:
5523
- if c in self.MT.col_options and "readonly" in self.MT.col_options[c]:
5524
- del self.MT.col_options[c]["readonly"]
5525
- else:
5526
- for c in columns:
5527
- if c not in self.MT.col_options:
5528
- self.MT.col_options[c] = {}
5529
- self.MT.col_options[c]["readonly"] = True
5513
+ for c in (columns,) if isinstance(columns, int) else columns:
5514
+ set_readonly(self.MT.col_options, c, readonly)
5530
5515
  return self.set_refresh_timer(redraw)
5531
5516
 
5532
5517
  def readonly_cells(
@@ -5537,45 +5522,31 @@ class Sheet(tk.Frame):
5537
5522
  readonly: bool = True,
5538
5523
  redraw: bool = False,
5539
5524
  ) -> Sheet:
5540
- if not readonly:
5541
- if cells:
5542
- for r, c in cells:
5543
- if (r, c) in self.MT.cell_options and "readonly" in self.MT.cell_options[(r, c)]:
5544
- del self.MT.cell_options[(r, c)]["readonly"]
5545
- else:
5546
- if (
5547
- row,
5548
- column,
5549
- ) in self.MT.cell_options and "readonly" in self.MT.cell_options[(row, column)]:
5550
- del self.MT.cell_options[(row, column)]["readonly"]
5525
+ if cells:
5526
+ for r, c in cells:
5527
+ set_readonly(self.MT.cell_options, (r, c), readonly=readonly)
5551
5528
  else:
5552
- if cells:
5553
- for r, c in cells:
5554
- if (r, c) not in self.MT.cell_options:
5555
- self.MT.cell_options[(r, c)] = {}
5556
- self.MT.cell_options[(r, c)]["readonly"] = True
5557
- else:
5558
- if (row, column) not in self.MT.cell_options:
5559
- self.MT.cell_options[(row, column)] = {}
5560
- self.MT.cell_options[(row, column)]["readonly"] = True
5529
+ set_readonly(self.MT.cell_options, (row, column), readonly=readonly)
5561
5530
  return self.set_refresh_timer(redraw)
5562
5531
 
5563
5532
  def readonly_header(
5564
5533
  self,
5565
- columns: list[int],
5534
+ columns: list[int] | int,
5566
5535
  readonly: bool = True,
5567
5536
  redraw: bool = False,
5568
5537
  ) -> Sheet:
5569
- self.CH.readonly_header(columns=columns, readonly=readonly)
5538
+ for c in (columns, int) if isinstance(columns, int) else columns:
5539
+ set_readonly(self.CH.cell_options, c, readonly)
5570
5540
  return self.set_refresh_timer(redraw)
5571
5541
 
5572
5542
  def readonly_index(
5573
5543
  self,
5574
- rows: list[int],
5544
+ rows: list[int] | int,
5575
5545
  readonly: bool = True,
5576
5546
  redraw: bool = False,
5577
5547
  ) -> Sheet:
5578
- self.RI.readonly_index(rows=rows, readonly=readonly)
5548
+ for r in (rows,) if isinstance(rows, int) else rows:
5549
+ set_readonly(self.RI.cell_options, r, readonly)
5579
5550
  return self.set_refresh_timer(redraw)
5580
5551
 
5581
5552
  def dehighlight_rows(
@@ -6,7 +6,7 @@ from typing import Any, Literal
6
6
 
7
7
  from .constants import align_helper, ctrl_key, rc_binding
8
8
  from .functions import convert_align
9
- from .other_classes import DotDict
9
+ from .other_classes import DotDict, FontTuple
10
10
 
11
11
 
12
12
  class TextEditorTkText(tk.Text):
@@ -231,6 +231,7 @@ class TextEditor(tk.Frame):
231
231
  show_border: bool,
232
232
  menu_kwargs: DotDict,
233
233
  sheet_ops: DotDict,
234
+ font: FontTuple,
234
235
  bg: str,
235
236
  fg: str,
236
237
  select_bg: str,
@@ -247,7 +248,7 @@ class TextEditor(tk.Frame):
247
248
  menu_kwargs=menu_kwargs,
248
249
  sheet_ops=sheet_ops,
249
250
  align=align,
250
- font=menu_kwargs.font,
251
+ font=font,
251
252
  bg=bg,
252
253
  fg=fg,
253
254
  select_bg=select_bg,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tksheet
3
- Version: 7.5.1
3
+ Version: 7.5.3
4
4
  Summary: Tkinter table / sheet and treeview widget
5
5
  Author-email: ragardner <github@ragardner.simplelogin.com>
6
6
  License: Copyright (c) 2019 ragardner and open source contributors
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes