Python 日历对齐

标签 python tkinter calendar

当我运行代码时,日历日数字与它们所对应的工作日不一致。我尝试过 justify = LEFT 和 RIGHT 和 CENTRE。即使没有 justify 语句,这些都不能解决我的问题

from tkinter import *
import calendar as cl
import datetime as datet

year = int(datet.date.today().strftime("%Y")) #year
month =  int(datet.date.today().strftime("%m")) #month number

root = Tk()
root.geometry("300x300")

app = Frame(root)
app.grid()

cal = Label(app, text = cl.month(year, month), justify = RIGHT)
cal.grid(row = 0, column = 0)

root.mainloop()

最佳答案

Tkinter 默认情况下使用非等宽字体作为标签。 calendar.month(year, Month) 是一个长字符串,如果您在控制台中打印,它将按您的预期显示。将您的代码更改为如下所示:

import calendar
import datetime
from tkinter import *

year = int(datetime.date.today().strftime("%Y"))  # year
month = int(datetime.date.today().strftime("%m"))  # month number

root = Tk()
root.geometry("300x300")

app = Frame(root)
app.grid()

cal = Label(app, text=calendar.month(year, month), font=('Consolas', 12))
cal.grid(row=0, column=0)

root.mainloop()

Consolas 是等宽字体,还有其他选项。

请注意,如果您将日历的每个部分分解为自己的小部件,则无需更改字体即可让它们按照您的意愿对齐。

关于Python 日历对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632664/

相关文章:

python - 数据追加问题

Python/Numpy 查找长度变量跨度

python-3.x - 使用 tkinter 时在 Google Colab 中设置 $DISPLAY 环境变量

Java日历日期逻辑错误

jsf - 如何在 RichFaces 日历中禁用前几天的日期选择?

javascript - 无法初始化自定义 jQuery 日历

python和小时公式计算

Python 测验问题

python - 根据 OptionMenu 的选择运行命令

python - Tkinter 不允许我使用变量来定义窗口大小