You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在tkinter开发中修改tksheet表格组件的界面显示语言?

tksheet界面语言修改方法

tksheet本身没有内置多语言切换功能,所有界面显示的操作文本(如右键菜单、操作提示等)都可以通过自定义参数的方式替换为中文,具体操作如下:

  • 右键菜单、表头菜单、行号菜单等界面文本,都可以通过Sheet类初始化时传入对应字典参数完成修改,常用的可修改项对应参数为popup_menu_dict(单元格右键菜单)、header_menu_dict(表头右键菜单)、row_index_menu_dict(行号右键菜单)。

下面是修改后的完整测试代码:

from tksheet import Sheet
import tkinter as tk

# 定义中文右键菜单文本映射
cn_cell_popup_menu = {
    "copy": "复制",
    "cut": "剪切",
    "paste": "粘贴",
    "delete": "删除",
    "clear": "清空内容",
    "select_all": "全选",
    "insert_row_above": "在上方插入行",
    "insert_row_below": "在下方插入行",
    "insert_column_left": "在左侧插入列",
    "insert_column_right": "在右侧插入列",
    "delete_rows": "删除选中行",
    "delete_columns": "删除选中列",
    "hide_columns": "隐藏选中列",
    "unhide_columns": "取消隐藏列",
    "hide_rows": "隐藏选中行",
    "unhide_rows": "取消隐藏行",
    "sort_ascending": "升序排序",
    "sort_descending": "降序排序"
}

# 定义中文表头菜单文本映射
cn_header_popup_menu = {
    "copy": "复制",
    "cut": "剪切",
    "paste": "粘贴",
    "delete": "删除",
    "clear": "清空内容",
    "select_all": "全选",
    "insert_column_left": "在左侧插入列",
    "insert_column_right": "在右侧插入列",
    "delete_columns": "删除选中列",
    "hide_columns": "隐藏选中列",
    "unhide_columns": "取消隐藏列",
    "sort_ascending": "升序排序",
    "sort_descending": "降序排序"
}

# 定义中文行号菜单文本映射
cn_row_popup_menu = {
    "copy": "复制",
    "cut": "剪切",
    "paste": "粘贴",
    "delete": "删除",
    "clear": "清空内容",
    "select_all": "全选",
    "insert_row_above": "在上方插入行",
    "insert_row_below": "在下方插入行",
    "delete_rows": "删除选中行",
    "hide_rows": "隐藏选中行",
    "unhide_rows": "取消隐藏行"
}

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(500)],
    # 传入中文菜单配置
    popup_menu_dict = cn_cell_popup_menu,
    header_menu_dict = cn_header_popup_menu,
    row_index_menu_dict = cn_row_popup_menu
    )
    self.sheet.enable_bindings()
    self.frame.grid(row = 0, column = 0, sticky = "nswe")
    self.sheet.grid(row = 0, column = 0, sticky = "nswe")


app = demo()
app.mainloop()

如果还有其他需要修改的界面文本,可以查看Sheet类初始化参数中对应的文本配置项,按照相同的字典映射方式替换即可。

内容的提问来源于stack exchange,提问作者Creator X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:06:02