我正在使用 tkcalendar 在 tkinter 中制作日历,但是在导入 tkcalendar 时,出现此错误:
ImportError:无法从部分初始化的模块“tkcalendar”导入名称“日历”(很可能是由于循环导入)
我尝试查看循环导入错误的其他堆栈溢出答案,但无法解决问题。我尝试在定义函数“显示”之前而不是在开始时从 tkcalendar 导入日历,但这也没有解决问题。
tkcalendar 的位置:
C:\Users\Vansh\AppData\Roaming\Python\Python38\site-packages
我的代码:
from tkinter import *
from tkcalendar import Calendar
from PIL import ImageTk,Image
x=Tk()
#Widget Size, Color, Title
x.geometry("400x400")
x.minsize(400,400)
x.maxsize(500,500)
x["bg"]="#222222"
x.title("Calendar")
#Title Label
l_title=Label(x,text="Calendar")
l_title["fg"]="white"
l_title["bg"]="#222222"
l_title["font"]=("Times New Roman",25,"bold")
l_title.place(x=125,y=20)
#Calendar Image Label
calendar_img=ImageTk.PhotoImage(Image.open("images/calendar.png"))
l_calendar_img=Label(x)
l_calendar_img["bg"]="#222222"
l_calendar_img["width"]=60
l_calendar_img["height"]=60
l_calendar_img["borderwidth"]=0
l_calendar_img.place(x=165,y=65)
#Month Label
l_month=Label(x,text="Month")
l_month["bg"]="#222222"
l_month["fg"]="#aef359"
l_month["font"]=("Arial",14)
l_month.place(x=30,y=147)
#Month Spinbox
sb_month=Spinbox(x, from_=1,to=12)
sb_month["bg"]="#111111"
sb_month["fg"]="white"
sb_month["width"]=5
sb_month["font"]=("Times New Roman",12)
sb_month.place(x=100,y=150)
#Year Label
l_year=Label(x,text="Year")
l_year["bg"]="#222222"
l_year["fg"]="#aef359"
l_year["font"]=("Arial",14)
l_year.place(x=225,y=147)
#Year Spinbox
sb_year=Spinbox(x, from_=1990,to=2030)
sb_year["bg"]="#111111"
sb_year["fg"]="white"
sb_year["width"]=7
sb_year["font"]=("Times New Roman",12)
sb_year.place(x=280,y=150)
#Display function
def display():
month=sb_month.get()
year=sb_year.get()
cal=Calendar(x,year=year,month=month)
cal.place(x=200,y=300)
#Show Calendar Button
b_show=Button(x,text="Show Calendar")
b_show["bg"]="#ff6700"
b_show["fg"]="white"
b_show["activebackground"]="#aef359"
b_show["activeforeground"]="white"
b_show["borderwidth"]=0
b_show["font"]=("Arial",9,"bold")
b_show["command"]=display
b_show.place(x=150,y=190)
x.mainloop()