python 基于tkinter的日历控件

博客介绍了如何在Tkinter中创建一个自定义的日历选择控件,解决了原日历控件缺失的问题。作者改造了现有的日历模块,增加了鼠标点击激活、日期回写、时间控制等功能,并提供了详细的使用方法。改造后的控件能够更好地集成到窗口程序中,提高了用户体验。

使用tkinter完成windows窗口程序,开始之前对tkinter没啥概念,需求紧急边用边学。。。。

处理到日历输入的时候才发现居然没有现成的日历选择控件,这让人很难受,找遍全网合适的也只有“大牛我的眼写的这个合适”

但是几个问题用起来很别扭

1. 通过外部button激活

2.回写日期输入栏在控件外部控制

3.没有时间控制

4.模块的名字叫calendar这个和现有系统的有冲突

实在找不到合适的,所以花了点时间改造了一下,可以去此下载源码 easyCalendar.py

在原有功能基础上添加了:

1.鼠标点击一个外部的ttk.Entry 输入框弹出选择日期 ,不通过点按button激活

2.选择日期确认后 选择日期写回ttk.Entry

如下图


 

然而没有时间控制实在是让偏执狂难受,所以最后还是没忍住加上了

最后添加的功能如下:

1.添加时间控制,小时下拉列表选择,时、分、秒的修改都可以通过加减按钮操作

2.默认的时间是日期外部Entry的内容,没有内容时才是当前时间

3.日历选择结果确定后写回外部Entry输入框

4.输入框鼠标点击一下激活,再点击一下消失,不算啥功能了,当我没说

就是下图这个效果

使用方法如下,调用对象EasyCalendarCtrl(date,date_str)传入输入的entry和textvariable变量即可,激活简单有效!

if __name__ == '__main__':
    root = tk.Tk()

    width, height = root.winfo_reqwidth() + 50, 50 #窗口大小
    x, y = (root.winfo_screenwidth()  - width )/2, (root.winfo_screenheight() - height)/2
    root.geometry('%dx%d+%d+%d' % (width, height, x, y )) #窗口位置居中

    date_str = tk.StringVar()
    date = ttk.Entry(root, textvariable = date_str)
    date.place(x = 0, y = 0, relx = 5/20, rely = 1/6, relwidth = 14/20, relheigh = 2/3)

    date_str.set(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

    EasyCalendarCtrl(date,date_str)

    root.mainloop()

需要的亲支持一下,多谢了!

https://item.taobao.com/item.htm?spm=a213gs.20824378.0.0.37664831XRa1CY&id=641907526609

5元钱发不了财,能让俺编码快乐的同时体验下销售的感觉,多谢了!

多说我自己的项目已经在用,所以不支持退货!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值