import tkinter as tkfrom tkinter import ttkimport calendarclass CalendarApp: def __init__(self, root): self.root = root self.root.title("万年历") # 设置窗口大小 self.root.geometry("400x300") # 创建年份和月份的下拉菜单 self.year_var = tk.IntVar(value=2023) self.month_var = tk.IntVar(value=10) self.year_label = tk.Label(root, text="年份:") self.year_label.grid(row=0, column=0, padx=10, pady=10) self.year_combobox = ttk.Combobox(root, textvariable=self.year_var, values=list(range(1900, 2101))) self.year_combobox.grid(row=0, column=1, padx=10, pady=10) self.month_label = tk.Label(root, text="月份:") self.month_label.grid(row=0, column=2, padx=10, pady=10) self.month_combobox = ttk.Combobox(root, textvariable=self.month_var, values=list(range(1, 13))) self.month_combobox.grid(row=0, column=3, padx=10, pady=10) # 创建显示日历的文本框 self.calendar_text = tk.Text(root, height=10, width=30) self.calendar_text.grid(row=1, column=0, columnspan=4, padx=10, pady=10) # 创建更新按钮 self.update_button = tk.Button(root, text="更新日历", command=self.update_calendar) self.update_button.grid(row=2, column=1, columnspan=2, pady=10) # 初始化日历 self.update_calendar() def update_calendar(self): """更新日历显示""" year = self.year_var.get() month = self.month_var.get() # 获取指定年份和月份的日历 cal = calendar.month(year, month) # 清空文本框并插入新的日历 self.calendar_text.delete(1.0, tk.END) self.calendar_text.insert(tk.END, cal)# 创建主窗口root = tk.Tk()# 创建万年历应用app = CalendarApp(root)# 运行主循环root.mainloop()
界面展示
运行代码后,会弹出一个窗口,包含以下内容:
年份和月份选择:用户可以通过下拉菜单选择年份和月份。
日历显示:显示所选年份和月份的日历。
更新按钮:点击按钮后,日历会根据用户选择的年份和月份更新。