Мне нужно изменить состояние календаря на основе флажка в Tkinter - PullRequest
0 голосов
/ 18 марта 2020

Я пишу, и частично это функциональная программа, которая отключает или включает календарь в tkinter, в зависимости от того, установлен флажок или нет. Вот как выглядит мой код:

from tkinter import *
from tkcalendar import *


    class Checkbox:
        def __init__(self, master):
            self.checkbuttonVar = IntVar()
            self.calendarLabel = Checkbutton(master, text="Set deadline:", variable=self.checkbuttonVar,
                                             command=self.checkcheck)
            self.calendarLabel.grid(row=5, column=0, pady=10, sticky=W)

            self.datePick = Calendar(master, date_pattern="mm/dd/yyyy")
            self.datePick.grid(row=6, column=0, columnspan=6, sticky=N + W + S + E)

        def checkcheck(self):
            if self.checkbuttonVar.get() == True:
                self.datePick(state='disabled')
            else:
                print('Not check')
    root = Tk()

    b = Checkbox(root)

    root.mainloop()

Когда я проверяю флажок, я получаю TypeError: объект Calendar не вызывается (я понимаю, что это, вероятно, самый глупый способ сделать это, но это в первый раз я действительно пытаюсь сделать что-то подобное, поэтому, пожалуйста, потерпите меня). Есть ли возможность изменить состояние календаря? Единственный вариант, с которым я пришел: Т очень хорошо выглядит. Буду очень благодарен за любой совет!

1 Ответ

1 голос
/ 18 марта 2020

Я идиот, все, что мне нужно было сделать, это:

def checkcheck(self):
    if self.checkbuttonVar.get() != True:
        self.datePick.configure(state="disabled")
    else:
        self.datePick.configure(state="normal")

И это работает как задумано.

...