使用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元钱发不了财,能让俺编码快乐的同时体验下销售的感觉,多谢了!
多说我自己的项目已经在用,所以不支持退货!
博客介绍了如何在Tkinter中创建一个自定义的日历选择控件,解决了原日历控件缺失的问题。作者改造了现有的日历模块,增加了鼠标点击激活、日期回写、时间控制等功能,并提供了详细的使用方法。改造后的控件能够更好地集成到窗口程序中,提高了用户体验。
703

被折叠的 条评论
为什么被折叠?



