首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ttkwidgets日历按钮语言

ttkwidgets日历按钮语言
EN

Stack Overflow用户
提问于 2021-05-23 22:51:50
回答 1查看 38关注 0票数 0

我想知道,是否可以更改“上一步”和“下一步”按钮的语言。如果我更改"locale“,则只更改月份名称,而不更改按钮。提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2021-05-24 16:00:05

按钮的文本是硬编码的,并且按钮不是日历的属性,因此不容易更改它们的文本。但是,也可以创建一个继承自ttkwidgets.Calendar的自定义类,只需重写定义按钮的函数__place_widgets()

代码语言:javascript
复制
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()

给出了一个法语日历

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67661057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档