Календарный месяц отображается в центре - PullRequest
0 голосов
/ 21 сентября 2019

Я пробую Python и Tkinter в первый раз, ниже приведены два вывода одного и того же кода на странице Tkinter и в консоли, как вы можете видеть, что они не выглядят одинаково, они не оправданы одинаково,Страница Tkinter по центру.Может ли кто-нибудь помочь мне понять, как отобразить его в том виде, в котором он представлен в разделе «Консоль» на изображении ниже:

Код:

 Label(frame, text=calander.get_calender(), fg='white', bg='black', font=(font_style, 12)).pack(side=LEFT)

get_calender() метод:

def get_calender():
    date_today = date.today()
    year, month = date_today.strftime('%Y'), date_today.strftime('%m')
    return calendar.TextCalendar(calendar.MONDAY).formatmonth(int(year),int(month))

Страница Tkinter:

enter image description here

Консоль:

enter image description here

1 Ответ

1 голос
/ 21 сентября 2019

Просто измените шрифт метки на «TkFixedFont» - это стандартный моноширинный шрифт Tkinter с фиксированной шириной.

import tkinter as tk


class Application(tk.Tk):

    def __init__(self, *args, **kwargs):
        from datetime import datetime
        import calendar

        tk.Tk.__init__(self, *args, **kwargs)
        self.title("Calendar")
        self.resizable(width=False, height=False)

        today = datetime.today()
        year, month = today.year, today.month
        text_calendar = calendar.TextCalendar(calendar.MONDAY).formatmonth(year, month)

        self.label = tk.Label(self, text=text_calendar, font="TkFixedFont", justify=tk.LEFT, fg="white", bg="black")
        self.label.pack()


def main():
    application = Application()
    application.mainloop()

    return 0

if __name__ == "__main__":
    import sys
    sys.exit(main())

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