图形界面万年历python
时间: 2023-06-21 21:14:11 浏览: 184
图形化界面的万年历代码
以下是一个简单的 Python 代码示例,可以创建一个图形用户界面(GUI)的万年历程序:
```python
import tkinter as tk
import calendar
class CalendarGUI:
def __init__(self):
self.root = tk.Tk()
self.root.title("万年历")
self.year = tk.StringVar()
self.month = tk.StringVar()
self.year.set("2022")
self.month.set("1")
self.create_widgets()
def create_widgets(self):
year_label = tk.Label(self.root, text="年份:")
year_label.grid(row=0, column=0)
year_entry = tk.Entry(self.root, textvariable=self.year)
year_entry.grid(row=0, column=1)
month_label = tk.Label(self.root, text="月份:")
month_label.grid(row=1, column=0)
month_entry = tk.Entry(self.root, textvariable=self.month)
month_entry.grid(row=1, column=1)
show_button = tk.Button(self.root, text="显示", command=self.show_calendar)
show_button.grid(row=2, column=1)
self.calendar_text = tk.Text(self.root, height=10, width=20)
self.calendar_text.grid(row=3, column=0, columnspan=2)
def show_calendar(self):
year = int(self.year.get())
month = int(self.month.get())
cal = calendar.monthcalendar(year, month)
self.calendar_text.delete("1.0", tk.END)
self.calendar_text.insert(tk.END, calendar.month_name[month] + " " + str(year) + "\n")
self.calendar_text.insert(tk.END, "Mo Tu We Th Fr Sa Su\n")
for week in cal:
for day in week:
if day == 0:
self.calendar_text.insert(tk.END, " ")
else:
self.calendar_text.insert(tk.END, str(day).rjust(2) + " ")
self.calendar_text.insert(tk.END, "\n")
def run(self):
self.root.mainloop()
if __name__ == '__main__':
cal = CalendarGUI()
cal.run()
```
这个程序使用 tkinter 模块创建了一个 GUI,让用户可以输入年份和月份,并点击“显示”按钮查看对应月份的日历。程序使用 calendar 模块生成日历,并在 GUI 中显示。运行该程序,会弹出一个窗口,用户可以在窗口中输入年份和月份,点击“显示”按钮即可显示对应的日历。
阅读全文