- Attempt to fix PyPi version issue
set_sheet_data()no longer verifies by default that data is list of lists (inbuilt functionality such as cell editing still requires list of lists though)- Initialization argument
dataallows tuple or list
- Scrolling with arrowkeys improvements
- Fix bug with hiding scrollbars not working
- Cell highlight tkinter colors no longer case sensitive
- Add additional items to
end_edit_cellevent responses
- Add function
default_column_width()and addcolumn_widthto functionset_options() - Add functions
get_dropdown_values()andset_dropdown_values() - Add row and column arguments to
get_dropdown_value()to get a specific dropdown boxes value create_dropdown()argumentseeis nowFalseby default
- Add functions
popup_menu_add_command()andpopup_menu_del_command()for extra commands on in-built right click popup menu - Update documentation
- Remove some unnecessary code (
preserve_other_selectionsarguments in some functions) - Add documentation file, update readme file
- Add extra variable to undo event
- Edit cell no longer creates undo if cell is left unchanged
- Remove/add scrollbars depending on if window can be scrolled
- Fix bug with delete key
- Add default height and width if a height is used without a width or vice versa
- Add right (
e) cell alignment for index and header
- Fix errors with
insert_column()andinsert_columns()
- Fixed bugs with row copying where
list(repeat(list(repeat(was used in code to create empty list of lists - Made cell resize to text (width only) take dropdown boxes into account
- Fix error with dropdown box close while showing all columns
- Fix bug with
delete_row()anddelete_column()functions when used with default arguments
- Fix bug with dragging scrollbar when columns are shorter than window
- Add startup argument
after_redraw_time_msdefault is100
- Fix bug with
insert_rows() - Add
redrawdefault argument to many functions, default isFalse
- Hopefully fix Linux mousewheel
- Fix auto resize issue
- Attempt to fix Linux mousewheel scrolling
- Add
enable_edit_cell_auto_resizeoption to startup andset_optionsdefault isTrue
- Fix potential issue with undo and dictionary copying
- Fix potential errors when moving/inserting/deleting rows/columns
- Add drop down position refresh to delete columns/rows on right click menu
- Various bug fixes and improvements
- Add readonly cells/columns/rows
- Fix bugs with
font()functions - Fix edit cell bug when hiding columns
- Attempt to fix scrolling issues
- Make
display_subset_of_columns()and other names of the same function always sort the showing columns - Make right click insert columns left shift data columns along
- Fix issues with
insert_column()/insert_columns()when hiding columns - Add default arguments
mod_column_positionsto functionsinsert_column()/insert_columns()which when set toFalseonly changes data, not number of showing columns - Add
"e"aka right hand side text alignment for main table, have not added to header or index yet - Add functions
align_cells(),align_rows(),align_columns()
- Fix paste bug
- Fix mac os vertical scroll code
- Add mac OS command c, x, v, z bindings
- Make shift - mousewheel horizontal scroll
- Make alt tab windows maintain open cell edit box
- Fix bug in
insert_columns()
- Make functions
insert_row(),insert_column(),delete_row(),delete_column()adjust highlighted cells/rows/columns to maintain correct highlight indexes - Built in right click functions now also auto-update highlighted cells/rows/columns
- Add argument
reset_highlightstoset_sheet_data()default isFalse - Add function
dehighlight_all() - Various bug fixes
- Right click insert column when hiding columns has been changed to always insert fresh new columns
- Fix bug with
highlightfunctions wherefgis set but notbg
- Fix delete key bug
- Change many values sent to functions set by
extra_bindings()- begin is before action is taken, end is after
| Binding | Response |
|---|---|
| "begin_ctrl_c" | ("begin_ctrl_c", boxes, currently_selected) |
| "end_ctrl_c" | ("end_ctrl_c", boxes, currently_selected, rows) |
| "begin_ctrl_x" | ("begin_ctrl_x", boxes, currently_selected) |
| "end_ctrl_x" | ("end_ctrl_x", boxes, currently_selected, rows) |
| "begin_ctrl_v" | ("begin_ctrl_v", currently_selected, rows) |
| "end_ctrl_v" | ("end_ctrl_v", currently_selected, rows) |
| "begin_delete_key" | ("begin_delete_key", boxes, currently_selected) |
| "end_delete_key" | ("end_delete_key", boxes, currently_selected) |
| "begin_ctrl_z" | ("begin_ctrl_z", change type) |
| "end_ctrl_z" | ("end_ctrl_z", change type) |
| "begin_insert_columns" | ("begin_insert_columns", stidx, posidx, numcols) |
| "end_insert_columns" | ("end_insert_columns", stidx, posidx, numcols) |
| "begin_insert_rows" | ("begin_insert_rows", stidx, posidx, numrows) |
| "end_insert_rows" | ("end_insert_rows", stidx, posidx, numrows) |
| "begin_row_index_drag_drop" | ("begin_row_index_drag_drop", orig_selected_rows, r) |
| "end_row_index_drag_drop" | ("end_row_index_drag_drop", orig_selected_rows, new_selected, r) |
| "begin_column_header_drag_drop" | ("begin_column_header_drag_drop", orig_selected_cols, c) |
| "end_column_header_drag_drop" | ("end_column_header_drag_drop", orig_selected_cols, new_selected, c) |
boxes are all selection box coordinates in the table, currently selected is cell coordinates
rows (in ctrl_c, ctrl_x and ctrl_v) is a list of lists which represents the data which was worked on
- Right click insert columns/rows now inserts as many as selected or one if none selected
- Some minor improvements
- Fix line creation when click drag resizing index
- Improve looks of top left rectangle resizers when one is disabled
- Fix bug in
insert_row_positions()
- Make
enable_bindings()anddisable_bindings()without arguments do all bindings - Fix top left resizers not showing up if enabling/disabling all bindings
- Improve look and feel of drag and drop
- Fix bug in certain circumstances with
insert_row_positions() - Fix
highlight_rows()bug
- Fix old color name, credit
ministiy
- Make drag selection only redraw table when rectangle dimensions change instead of mouse moves
- Adjust light green theme colors slightly
- Changed all color option argument names for better clarity
| Old Name | New Name |
|---|---|
| frame_background | frame_bg |
| grid_color | table_grid_fg |
| table_background | table_bg |
| text_color | table_fg |
| selected_cells_border_color | table_selected_cells_border_fg |
| selected_cells_background | table_selected_cells_bg |
| selected_cells_foreground | table_selected_cells_fg |
| selected_rows_border_color | table_selected_rows_border_fg |
| selected_rows_background | table_selected_rows_bg |
| selected_rows_foreground | table_selected_rows_fg |
| selected_columns_border_color | table_selected_columns_border_fg |
| selected_columns_background | table_selected_columns_bg |
| selected_columns_foreground | table_selected_columns_fg |
| resizing_line_color | resizing_line_fg |
| drag_and_drop_color | drag_and_drop_bg |
| row_index_background | index_bg |
| row_index_foreground | index_fg |
| row_index_border_color | index_border_fg |
| row_index_grid_color | index_grid_fg |
| row_index_select_background | index_selected_cells_bg |
| row_index_select_foreground | index_selected_cells_fg |
| row_index_select_row_bg | index_selected_rows_bg |
| row_index_select_row_fg | index_selected_rows_fg |
| header_background | header_bg |
| header_foreground | header_fg |
| header_border_color | header_border_fg |
| header_grid_color | header_grid_fg |
| header_select_background | header_selected_cells_bg |
| header_select_foreground | header_selected_cells_fg |
| header_select_column_bg | header_selected_columns_bg |
| header_select_column_fg | header_selected_columns_fg |
| top_left_background | top_left_bg |
| top_left_foreground | top_left_fg |
| top_left_foreground_highlight | top_left_fg_highlight |
- Add option to use integer in
insert_row_positions()andinsert_column_positions()for how many columns to add - Fix error occurring in above functions when using python 3.6-3.7 due to itertools argument added in python 3.8
- Fix show_horizontal and show_vertical grid
- Reduce column minimum size even further
- Fix bug with highlights introduced in 4.7.6
- Make
startup_selectalso see the chosen cell - Deprecated functions
is_cell_selected(),is_row_selected(),is_column_selected()use the same functions but without theis_in the name - Add functions
highlight_columns(),highlight_rows(), makehighlight_cells()argumentcellsupdate dictionary rather than overwrite - Remove double click resizing of index
- Reduce minimum column width to 1 character
- Make arrowkey up and left not select column/row when at end, will add more shortcuts in a later update
- Adjust width of auto-resized index
- Hide header height/index width reset bars in top left if relevant options are disabled
- Add option
page_up_down_select_rowwill select row when using page up/down, default isTrue - Overhaul text, grid and highlight canvas item management, no longer deletes and redraws, keeps items using
"hidden"and reuses them to prevent canvas item number getting high quickly - Edit cell resizing now only uses displayed rows/columns to fit to cell text
- Fix
see()not being correct when using non-defaultempty_verticalandempty_horizontal - Fix flicker when row index auto resizes
- Rename
auto_resize_numerical_row_indextoauto_resize_default_row_index - Add option
startup_focusto giveSheet()main table focus on initialization - Add startup argument
startup_selectuse like so:
To create a cell selection box where cells 0,0 up to but not including 3,3 are selected:
startup_select = (0, 0, 3, 3, "cells"),To create a row selection box where rows 0 up to but not including 3 are selected:
startup_select = (0, 3, "rows"),To create a column selection box where columns 0 up to but not including 3 are selected:
startup_select = (0, 3, "columns"),- Make
"begin_edit_cell"and"end_edit_cell"the only two edit cell bindings for use withextra_bindings()function (although"edit_cell"still works and is the equivalent of"end_edit_cell") - Make it so if
"begin_edit_cell"binding returns anything other thanNonethe text in the cell edit window will be that return value otherwise it will be the relevant keypress - Prevent auto resize from firing two redraw commands in one go
- Fixed issue where clicking outside of cell edit window and Sheet would return focus to the Sheet widget anyway
- Fixed issues where row/column select highlight would be lower in canvas than cell selections
- Hopefully simplified cell edit code a bit
- Fix undo delete columns error for python versions < 3.8
- Adjustment to dark theme colors
- Clean up repetitions of code which had virtually no performance gain anyway
- Rename themes to "light blue", "light green", "dark blue", "dark green"
- Clean up theme and color settings code
- Add green theme
- Change font to calibri
- Minor fixes when using in-built ctrl functions
- Fix button-1-motion scrolling issues
- Many minor improvements
- Some minor improvements
- Fix minor display issue where sheet is empty and user clicks and drags upwards
- Added multiple new functions
- Many minor improvements
- Decreased size of area that resize cursors will show
- Much improved dark theme
- Resizing cells will now resize dropdown boxes, still have to add support for moving rows/columns
- Begin process of adding code to maintain multiple persistent dropdown boxes
- Add function
delete_dropdown()(use argument"all"for all dropdown boxes) - Add function
get_dropdowns()to return locations and info for all boxes
- Fix
create_dropdown()issues
- Fix github release
- Add startup and
set_options()arguments:
empty_horizontal #empty space on the x axis in pixels
empty_vertical #empty space on the y axis in pixels
show_horizontal_grid #grid lines for main table
show_vertical_grid #grid lines for main table
- Fix scrollbar issues if hiding index or header
- Change
Cin startup arguments toparentfor clarity - Add Listbox using
Sheet()recipe to tests
- Clean up menus
- Improve Dark theme
- Fix bug with column drag and drop and row index drag and drop
- Attempt made to remove cell editor window internal border, showing up on some platforms
- Add function
set_text_editor_value() - Moved internal
begin_cell_editcode slightly - Make Alt-Return on text editor only increase text window height if too small
- Fix download url in
setup.py
- Add
"begin_edit_cell"to functionextra_bindings()
- Fix mouse motion binding in top left code not returning event object
- Add some extra demonstration code to
test_tksheet.py
- Fix typo in row index code leading to text not slicing properly with center alignment
- Improve text redraw slicing and positioning when cell size too small, especially for center alignments, very slight performance cost
- If a number of lines has been set by using a string e.g. "1" for default row or header heights then the heights will be updated when changing fonts
- Fix resize not taking into account header if header is set to a row in the sheet
- Fix bugs with
display_subset_of_columns(), argumentset_col_positionsdoes nothing until reworked or removed
- Improve center alignment and auto resize widths issues
- Make
grid_propagate()only occur internally if bothheightandwidtharguments are used, instead of just one - Fix bug in
get_sheet_data() - Fix mismatch with scrollbars in
showscrollbar options
- Add
header_heightargument toset_options() - Make
header_heightarguments accept integer representing pixels as well as string representing number of lines - Make top left header height resize bar use
header_heightand not minimum height
- Fix readme python versions
- Fix readme python versions
- Fix Python version required
- Fix typo in header code
- Fix some issues with header and index not showing when values aren't string
- Fix row index width when starting with default index and then switching later
- Fix very minor issue with header text limit
- Fix some issues with right click insert column/row
- Fix error that occurs if row is too short on edit cell or not enough rows
- Add function
recreate_all_selection_boxes() - Add function
bind_text_editor_set() - Add function
get_text_editor_value()
- Removed internal
total_rowsandtotal_colsvariables, replaced with functions for better maintainability but at the cost of performance in some cases - Added
fix_dataargument to functiontotal_columns()to even up all row lengths in sheet data - Removed
total_rowsandtotal_colsarguments from functionsdata_reference()andset_sheet_data() - Fix issues with function
total_columns() - Redo functions
insert_column()andinsert_row(), hopefully they work better - Add argument
equalize_data_row_lengthsto functioninsert_column()default isTrue - Add arguments
get_indexandget_headerto functionget_sheet_data()defaults areFalse - Change some argument names for functions involving inserting/setting rows and columns
display_subset_of_columns()now tries to maintain some existing column widths- Add functions
sheet_data_dimensions(),sheet_display_dimensions(),set_sheet_data_and_display_dimensions() - Fix bug with undo edit cell if displaying subset of columns
- Fix max undos issue
display_subset_of_columns()now resets undo storage
- Potential fix for functions
headers()androw_index()whenshow...if_not_sheetarguments are utilized
- Add argument
reset_col_positionsto functionheaders()default isFalse - Add argument
reset_row_positionsto functionrow_index()default isFalse - Add argument
show_headers_if_not_sheetto functionheaders()default isTrue - Add argument
show_index_if_not_sheetto functionrow_index()default isTrue - Adjust most
centertext draw positions slightly,centeralignment should now actually be center - Improve header resizing accuracy for set to text size
- Add
rc_insert_columnandrc_insert_rowstrings to extra bindings - Fix errors with insert column/row that occur if data is empty list
- Fix resizing row index width/header height sometimes not working
- Fix select all creating event when sheet is empty
- Fix
create_current()internal error if there are columns but no rows or rows but no columns - Add argument
get_cells_as_rowsto functionget_selected_rows()to return selected cells as if they were selected rows - Add argument
get_cells_as_columnsto functionget_selected_columns()to return selected cells as if they were selected columns - Add argument
return_tupleto functionsget_selected_rows(),get_selected_columns(),get_selected_cells()
- Add function
set_currently_selected() - Make
get_selected_min_max()return(None, None, None, None)if nothing selected to prevent error with tuple unpacking e.gr1, c1, r2, c2 = get_selected... - Fix potential issue with internal function
set_col_width()ifonly_set...argument isTrue - Fix typo in function
create_selection_box() - Add
right_click_selectandrc_selectto functionenable_bindings(), is enabled as well if other right click functionality is enabled - Add
"all_select_events"as option in functionextra_bindings()to quickly bind all selection events in the table, including deselection to a single function
- Make row height resize to text include row index values
- Fix bug with function
.set_all_cell_sizes_to_text()where empty cells would result in minimum sizes - Fix typo error in function
.set_all_cell_sizes_to_text()
- Add function
get_currently_selected() - Add functions
self.sheet_demo.set_all_column_widths(),self.sheet_demo.set_all_row_heights(),self.sheet_demo.set_all_cell_sizes_to_text() - Add argument
set_all_heights_and_widthsto startup, useTrueorFalse - Improve performance of all resizing functions
- Make resizing detect text dimensions for full row/column, not just what is displayed
- Fix bug with
row_index()function - Fix
headersset tointat start up not working ifheadersis0
- Fix bug if
row_drag_and_drop_performorcolumn_drag_and_drop_performis False - Fix display issue with undo drag and drop rows/columns
- Add
"unbind_all"as possible argument for functionextra_bindings() - Add
"enable_all"as possible argument for functionenable_bindings() - Add
"disable_all"as possible argument for functiondisable_bindings()
- Add function
set_sheet_data()use argumentverify = Falseto prevent verification of types - Add startup arguments
row_drag_and_drop_performandcolumn_drag_and_drop_performand add toset_options() - Fix double selection with drag and drop rows
- Add
dataargument to startup arguments
- Fix some highlighted cells not being reset when displaying subset of columns
- Fix highlighted cells not blending with drag selection
- Fix basic bindings bug
- Fix typo in popup menu
- Improve performance of drag selection
- Improve
row_index()andheaders()functions, add examples - Add
"single_select"and"toggle_select"toenable_bindings()
- Fix bug with undo deletion
- Fix bug with insert row
- Deprecate
change_color()useset_options()instead - Fix display bug where resizing row index width or header height would result in small selection boxes
- Rework popup menus, use
enable_bindings()with"right_click_popup_menu"to make them work again - Allow additional binding of right click to a function alongside
Sheet()popup menus - Add function
get_sheet_data() - Add
x_scrollbarandy_scrollbartoshow(),hide()andSheet()startup - Removed
showargument from startup, addedshow_table, default isTrue - Add option to automatically resize row index width when user has not set new indexes, default is
True - Rework the top left rectangle and add select all on left click if drag selection is enabled
- Change appearance of popup menus
- Change popup menu color for dark theme
- Fix wrong popup menu on right click with selected rows/columns
- Fix bug where highlighted background or foreground might not be in the correct column when displaying a subset of columns
- Change colors of selected rows and columns
- Add color options:
header_select_column_bg
header_select_column_fg
row_index_select_row_bg
row_index_select_row_fg
selected_rows_border_color
selected_rows_background
selected_rows_foreground
selected_columns_border_color
selected_columns_background
selected_columns_foreground- Fix various issues with displaying correct colors in certain circumstances
- Change dark theme colors slightly
- Fix PyPi release version
- Fix bug with right click delete columns and undo
- Right click in main table when over selected columns/rows now brings up column/row menu
- Add internal cut, copy, paste, delete and undo to usable
Sheet()functions
- Fix bug with center alignment and display subset of columns
- Fix bug with highlighted cells showing as selected when they're not
- Fix resize row height bug
- Fix deselect bug
- Improve and fix many bugs with toggle select mode
- Fix extra selection box drawing in certain circumstances
- Fix bug in Paste
- Remove some unnessecary code
- Fix bugs introduced with 4.1.8
- Overhaul internal selections variables and workings
- Replace functions
get_min/get_maxselectedxandywithget_selected_min_max() - Fix bugs with functions
total_columns()andtotal_rows()and set default argumentmod_datatoTrue - Change drag and drop so that it modifies data with or without an extra binding set
- Add functions
set_cell_data(),set_row_data(),set_column_data() - Remove bloat in
get_highlighted_cells() - Prepare many functions for implementation of control + click
- Fix typo in
get_cell_data() - Add function
height_and_width() - Fix height and width in widget startup
- Fix cell selection after editing cell ending with mouse click
- Separate drag selection
extra_bindings()into cells, rows and columns - Add shift select and separate it from left click and right click in
extra_bindings() - Changed and hopefully made better all responses to
extra_bindings()functions - Added selection box to selected rows/columns
- Fix bugs with drag and drop rows/columns
- Clean up drag and drop code
- Improve speed of
get_selected_cells() - Add function
get_selection_boxes() - Remove more unnessecary loops
- Added argument
show_selected_cells_borderto start up - Added function
set_options() - Added undo to drag and drop rows/columns
- Fixed bug with drag and drop columns when displaying a subset of columns
- Move text up slightly inside cells
- Fix selected cells border not showing sometimes
- Replace some unnessecary loops
- Improve select all speed by 20x
- Shrink cell size slightly
- Added options to hide row index and header at start up
- Change looks of ctrl x border
- Fix minor issue where two borders would draw in the same place
- Added undo to insert row/column and delete rows/columns
- Changed the default looks
- Deprecated function
select()and addedtoggle_select_cell(),toggle_select_row()andtoggle_select_column() - Added functions
is_cell_selected(),is_row_selected(),is_column_selected(),get_cell_data(),get_row_data()andget_column_data() - Changed behavior of
deselect()function slightly to now accept a cell from argumentsrow =andcolumn =as well ascell = - Added cell selection borders and start up option
selected_cells_border_coloras well as to the functionchange_color() - Removed the main table variable
selected_cellsand reduced memory use - Fixed a bug with editing a cell while displaying a subset of columns
- Renamed
RowIndexesclass toRowIndex - Added separate test file
- Fixed import errors
- Added
frame_backgroundparameter toSheet()startup andchange_color()function - Added more keys to edit cell binding
- Separated
edit_bindingsfor the functionenable_bindings()into the following:"cut""copy""paste""delete""edit_cell""undo"Note that the argument"edit_bindings"still works
- Separated the tksheet classes and variables into different files
- Fixed bug with function
display_subset_of_columns() - Fixed issues with row heights and column widths adjusting too small
- Improved dark theme
- Added top left rectangle to hide
- Added insert and delete row and column to right click menu
- Some general code improvements
- The function
display_columns()has been changed todisplay_subset_of_columns()and some paramaters have been changed - The variables
total_rowsandtotal_colshave been reworked - Sheets can now be created with the parameters
total_rowsandtotal_columnsto create blank sheets of certain dimensions - The functions
total_rows()andtotal_columns()have been added to set or get the dimensions of the sheet "edit_bindings"has been added as an input for the functionenable_bindings()show()andhide()have been reworked to allow hiding of the header and/or row index
- delete_row() is now delete_row_position()
- insert_row() is now insert_row_position()
- move_row() is now move_row_position()
- delete_column() is now delete_column_position()
- insert_column() is now insert_column_position()
- move_column() is now move_column_position()
- The original functions have been changed to behave as they read and actually modify the table data