我想知道,是否可以更改“上一个”和“下一个”按钮的语言。如果我更改“语言环境”,则仅更改月份名称而不更改按钮。先感谢您。
问问题
43 次
1 回答
0
按钮的文本是硬编码的,并且按钮不是日历的属性,因此不容易更改它们的文本。但是,可以创建一个自定义类,继承自ttkwidgets.Calendar
并重写__place_widgets()
定义按钮的函数:
import tkinter as tk
from tkinter import ttk
import ttkwidgets
translation = {"Previous": "Précédant", "Next": "Suivant"}
def _(string):
return translation.get(string, string)
class Calendar(ttkwidgets.Calendar):
def __place_widgets(self):
# header frame and its widgets
hframe = ttk.Frame(self)
lbtn = ttk.Button(hframe, command=self._prev_month, text=_("Previous"))
rbtn = ttk.Button(hframe, command=self._next_month, text=_("Next"))
self._header = ttk.Label(hframe, width=15, anchor='center')
# the calendar
self._calendar = ttk.Treeview(self, show='', selectmode='none', height=7)
# pack the widgets
hframe.pack(side='top', pady=4, anchor='center')
lbtn.grid(sticky=tk.N + tk.S + tk.W + tk.E)
self._header.grid(column=1, row=0, padx=12)
rbtn.grid(column=2, row=0, sticky=tk.N + tk.S + tk.W + tk.E)
self._calendar.pack(expand=1, fill='both', side='bottom')
root = tk.Tk()
cal = Calendar(root, locale="fr_FR.UTF-8")
cal.pack()
root.mainloop()
于 2021-05-24T08:00:04.767 回答