runcell(0, 'D:/phython写/untitled17.py') 当前时间: 2023-06-01 23:54:21 Traceback (most recent call last): File "D:\phython写\untitled17.py", line 50, in <module> calendar.pack() AttributeError: 'Calendar' object has no attribute 'pack'
时间: 2024-02-29 10:53:09 浏览: 14
根据错误提示,`AttributeError: 'Calendar' object has no attribute 'pack'`,说明在你的代码中,`Calendar`对象没有`pack()`方法。`pack()`是用于Tkinter中的布局管理器,而不是用于日历的,因此导致了错误。
你可以参考以下代码,使用Tkinter创建一个窗口,并使用grid()方法来布局日历:
```python
import tkinter as tk
import calendar
def show_calendar():
# 创建一个窗口
root = tk.Tk()
root.title("日历")
# 获取当前日期
year = int(tk.StringVar().get().split("-")[0])
month = int(tk.StringVar().get().split("-")[1])
# 创建日历
cal = calendar.monthcalendar(year, month)
for i in range(len(cal)):
for j in range(len(cal[i])):
cell = tk.Frame(root, width=100, height=80, borderwidth=1, relief="solid")
cell.grid(row=i+1, column=j, padx=5, pady=5)
cell_label = tk.Label(cell, text=cal[i][j])
cell_label.pack()
# 运行窗口
root.mainloop()
# 创建一个窗口并添加日期输入框和按钮
root = tk.Tk()
root.title("日历")
date_label = tk.Label(root, text="请输入日期(格式:YYYY-MM):")
date_label.grid(row=0, column=0, padx=10, pady=10)
date_entry = tk.Entry(root)
date_entry.grid(row=0, column=1, padx=10, pady=10)
show_btn = tk.Button(root, text="显示日历", command=show_calendar)
show_btn.grid(row=1, column=0, columnspan=2, padx=10, pady=10)
# 运行窗口
root.mainloop()
```
这段代码会创建一个窗口,其中包含一个日期输入框和一个按钮,点击按钮后会在窗口中显示对应日期的日历。