GitPedia

CTkTable

Customtkinter Table widget (extension/add-on)

From Akascape·Updated June 22, 2026·View on GitHub·

**Here is a quick and simple table widget having all the basic features.** The project is written primarily in Python, distributed under the MIT License license, first published in 2023. Key topics include: customtkinter, customtkinter-table, customtkinter-treeview, tables, tableview.

CTkTable

Here is a quick and simple table widget having all the basic features.

Screenshot

Features:

  • Add columns/rows
  • Delete columns/rows
  • Edit rows/columns at once
  • Insert values to specific cell
  • delete values from specific cell
  • update all values at once
  • edit each cell value and options
  • entry editing
  • can be used with scrollable frame
  • Lots of other data operations

Installation

pip install CTkTable

<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/Akascape/CTkTable?&color=white&label=Download%20Source%20Code&logo=Python&logoColor=yellow&style=for-the-badge" width="400">

Dont forget to leave a ⭐

Usage

python
import customtkinter from CTkTable import * root = customtkinter.CTk() value = [[1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5]] table = CTkTable(master=root, row=5, column=5, values=value) table.pack(expand=True, fill="both", padx=20, pady=20) root.mainloop()

Methods

  • .insert(row, column, value, *args): change specific cell index data
  • .add_row(index, values)
  • .add_column(index, values)
  • .edit_row(row_num, *args): edit one full row at once
  • .edit_column(column_num, *args): edit one full column at once
  • .delete_row(index): remove one row
  • .delete_column(index): remove one column
  • .delete_rows(indices): remove mutliple rows
  • .delete_columns(indices): remove multiple columns
  • .edit(row, column): edit specific cell without changing the value
  • .select(row, column): select one cell
  • .select_row(row): select a row
  • .get_selected_row(): get the values of the selected row
  • .deselect_row(row): deselect a row
  • .select_column(column): select a column
  • .get_selected_column(): get the values of selected column
  • .deselect_column(column): deselect a column
  • .update_values(values): update all values at once
  • .delete(row, column, *args): delete the data from specific index
  • .get(): get all values
  • .get(row, column): get specific cell value
  • .get_row(row): get all values of a specific row
  • .get_column(column): get all values of a specific column
  • .configure(arguments): change other table attributes

here, args means ctkbutton parameters which can also be passed

Note: treat all the table cells as a ctkbutton class

Arguments

ParameterDescription
masterparent widget
valuesthe default values for table
rowoptional, set number of default rows
columnoptional, set number of default columns
padxadd internal padding in x
padyadd internal padding in y
colorsset two fg_colors for the table (list), eg: colors=["yellow", "green"]
color_phaseset color phase based on rows or columns, eg: color_phase="vertical"
orientationchange the orientation of table, vertical or horizontal
header_colordefine the topmost row color
corner_radiusdefine the corner roundness of the table
hover_colorenable hover effect on the cells
wraplengthset the width of cell text
justifyanchor the position of the cell text
commandspecify a command when a table cell is pressed, [returns row, column, value]
*other button parametersall other ctk button parameters can be passed

Note: This library is at early stage so there can be some performance issues.

Thanks for visiting! Hope it will help :)

Contributors

Showing top 2 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Akascape/CTkTable via the GitHub API.Last fetched: 6/26/2026