我正在写,其中一部分是一个函数程序,它在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”对象是不可调用的(我意识到这可能是最愚蠢的方法,但这是我第一次真正尝试这样做,所以请容忍我)。是否有更改日历状态的选项?我唯一的选择是:
def checkcheck(self):
if self.checkbuttonVar.get() == True:
self.datePick = Calendar(root, date_pattern="mm/dd/yyyy")
self.datePick.grid(row=6, column=0, columnspan=6, sticky=N + W + S + E)
else:
self.datePick = Calendar(root, date_pattern="mm/dd/yyyy", state='disabled')
self.datePick.grid(row=6, column=0, columnspan=6, sticky=N + W + S + E)
它有点像它应该做的,但我不满意这个解决方案,我可以看到程序刷新每次我检查按钮,这不是很好看。我将非常感谢任何建议
我是个白痴,我要做的就是:
它的工作原理与预期一致
相关问题 更多 >
编程相关推荐