Нарисуйте несколько дней в календаре - PullRequest
0 голосов
/ 05 февраля 2020

Я создал программу, которая отображает календарь. Я использую tkinter и Calendar import. Можно ли нарисовать число или фон (на самом деле пометить как-нибудь) всех воскресных дней?

Current GUI

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Как предлагается в комментариях, вы можете использовать тег для пометки воскресений. Вы используете calendar.month(year, month, 2, 1) для отображения календаря, чтобы ваши столбцы имели ширину в два символа и разделялись пробелом, поэтому столбец Sunday начинается с символа 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")

screenshot

Кстати, если вы хотите свой календарь чтобы быть хорошо выровненными с прямыми столбцами, как на моем скриншоте, вы должны использовать моноширинный шрифт.

0 голосов
/ 05 февраля 2020

Если вы используете библиотеку tkcalendar, то вы можете настроить цвет background и forground выходных.

Выходные состоят из субботы и воскресенье . Это означает, что вы не можете настроить только Sundays вместо обоих дней .

Настроены следующие свойства:

  • weekendbackground - для настройки цвет фона выходных дней.

  • weekendforeground - для настройки цвета переднего плана
    выходных дней.

Простой рабочий код:

import tkinter as tk
import tkcalendar

root = tk.Tk()

cal = tkcalendar.Calendar(root, selectmode='day', year=2020, month=1, day=1)
cal.config(weekendbackground='blue', weekendforeground='white')
cal.grid(row=0, column=0)

root.mainloop()

Снимок экрана:

Если вы хотите использовать цвета по умолчанию, тогда вы можете отказаться от использования этих свойств.

Подробнее о tkcalendar вы можете узнать по этой ссылке - https://pypi.org/project/tkcalendar/

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...