将dateentry显示从m / d / yy扩展到mm / dd / yyyy?

问题描述 投票:0回答:1

使用dateentry python模块中的tkcalendar,每次在窗口小部件上选择日期时,它都会缩短为m/d/yy格式。如果可能的话,我希望它扩展到mm/dd/yyyy,或者至少在今年。

当使用set_date方法时,它将显示输入的内容(字符串),但是一旦点击另一个日期,它将恢复为缩短的格式。

有没有办法让它始终显示完整的日期?我似乎无法找到一个允许我使用%Y的格式参数,所以这就是我问的原因。

python date tkinter calendar tk
1个回答
0
投票

如果您只想更改选择时的显示方式,可以创建一个继承DateEntry并覆盖_select方法的类。

from tkcalendar import DateEntry
import tkinter as tk

root = tk.Tk()

class CustomDateEntry(DateEntry):

    def _select(self, event=None):
        date = self._calendar.selection_get()
        if date is not None:
            self._set_text(date.strftime('%m/%d/%Y'))
            self.event_generate('<<DateEntrySelected>>')
        self._top_cal.withdraw()
        if 'readonly' not in self.state():
            self.focus_set()

entry = CustomDateEntry(root)
entry._set_text(entry._date.strftime('%m/%d/%Y'))
entry.pack()

root.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.