首页 > 解决方案 > 在日历上画几天

问题描述

我创建了一个显示日历的程序。我正在使用 tkinter 和 Calendar 导入。是否可以绘制所有星期天的数字或背景(实际上是标记)?

当前图形用户界面

标签: pythontkintercalendar

解决方案


正如评论中所建议的,您可以使用标签来标记星期日。您用于calendar.month(year, month, 2, 1)显示日历,因此您的列是两个字符宽并由空格分隔,因此星期日列从字符 18 开始。第一行是月份名称,第二行是工作日,因此您需要开始添加标签第 3 行。

这是代码:

import calendar
from tkinter import Text

text = Text()
text.pack()
# configure tag to change the background and foreground of sundays
text.tag_configure("sunday", background='light grey', foreground='red')

# display calendar
month = calendar.month(2020, 2, 2, 1)
text.insert('1.0', month)

# add the sunday tag to sundays
for line in range(3, len(month.splitlines()) + 1):
    text.tag_add('sunday', f"{line}.18", f"{line}.20")

截屏

顺便说一句,如果您希望日历与直列很好地对齐,就像我的屏幕截图一样,您需要使用等宽字体。


推荐阅读