Python提供了一个内置的日历模块
calendar
,可以方便地生成日历。使用
calendar
模块可以生成文本格式的日历,但如果您需要更好看、更交互式的日历,可以使用第三方库来实现。
其中,比较流行的日历控件库包括
tkcalendar
和
wxPython
中的
wx.adv.CalendarCtrl
。下面我会简单介绍一下这两个库的用法。
tkcalendar
tkcalendar
是基于Tkinter库的日历控件,可以方便地在Python中使用。
首先,需要安装
tkcalendar
库。可以使用pip进行安装:
pip install tkcalendar
然后,可以使用以下代码来生成日历控件:
import tkinter as tk
from tkcalendar import Calendar, DateEntry
root = tk.Tk()
def print_sel():
print(cal.selection_get())
cal = Calendar(root, selectmode='day', year=2023, month=2, day=28)
cal.pack(pady=20)
button = tk.Button(root, text="获取选中日期", command=print_sel)
button.pack(pady=20)
root.mainloop()
在上面的代码中,我们首先导入tkinter
和tkcalendar
库。然后,创建一个Tkinter窗口root
。接着,定义了一个函数print_sel
,该函数用于在控制台输出当前选中的日期。
我们使用Calendar
函数来创建一个日历控件,并指定了控件的属性:选择模式为day
(只能选择一天)、年份为2023年、月份为2月、当天为28日。然后,使用pack
函数将日历控件放置在窗口中央。最后,我们创建了一个按钮button
,当按钮被点击时会调用print_sel
函数。
运行上面的代码,就可以看到一个带有日历控件和按钮的窗口,点击按钮后,选中的日期将被打印到控制台上。
wx.adv.CalendarCtrl
wx.adv.CalendarCtrl
是wxPython中的日历控件,可以在Python中创建一个跨平台的日历控件。
首先,需要安装wxPython库。可以使用pip进行安装:
pip install wxPython
然后,可以使用以下代码来生成日历控件:
import wx
import wx.adv
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, title="日历控件", size=(400, 400))
panel = wx.Panel(self)
cal = wx.adv.CalendarCtrl(panel, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.adv.CAL_SHOW_HOLIDAYS)
cal.Bind(wx.adv.EVT_CALENDAR, self.OnCalSelected)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(cal, 0, wx.EXPAND | wx.ALL, 20)
panel.SetSizer(sizer)
def OnCalSelected(self, evt):
print(evt.GetDate())
app = wx.App()
frame = MyFrame(None)
frame.Show
Python集中营
Python