程序实现制作一个 Tkinter 图形界面日历(只显示阳历日期),用户选择某年某月,
图形化显示当月日历功能。运行效果如下:
1. 界面绘制模块:tkinter
Tk 是一个轻量级的跨平台图形用户界面 (GUI)开发工具。Tk 和 Tkinter 可以运行在大多数
的 Unix 平台、Windows、和 Macintosh 系统。由于是 Python 自带的标准库,我们想要使
用它的时候,只需直接导入即可。
from tkinter import *
2. 指定月份的第一天是星期几的计算
不使用 python 提供的 calendar 提供日期计算方法。而是根据 1800 年 1 月 1 号为星期三,
以此推算指定月份的第一天是星期几。
#作者qq:462930626from tkinter import *
from tkinter.ttk import *class App:def __init__(self):self.windos = Tk()self.windos.title("万年历")self.windos.geometry("430x180")self.lis1 = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]self.images=[]self.creat_image_lis()self.creat_res()self.windos.mainloop()def func1(self):self.get_total_days(self.a, self.b)print(self.lis1[self.get_week(self.a, self.b) - 1])self.print_days(self.a, self.b)def creat_image_lis(self):for i in range(1,13):self.images.append("res/%s.png"%i)def go(self,*args):# self.T1.delete(0.0,END)try:self.a = int(self.C1.get())self.b = int(self.C2.get())self.func1()except Exception:# self.T1.insert(END,"请输入年份和月份")passdef creat_res(self):# self.windos.grid_rowconfigure(1,weight=1,minsize=30) # 限制最小高度为30像素# self.windos.grid_columnconfigure(0,weight=1,minsize=66) # 限制最小宽度为66像素self.L1=Label(self.windos,text="     年     ")self.L2=Label(self.windos,text="     月     ")self.L22=Label(self.windos,text="     日     ")self.B1 = Button(self.windos, text="更新日历", command=self.go)self.temp1 = StringVar()self.temp2 = StringVar()self.C1=Combobox(self.windos,values=[x for x in range(1800,2024)],width=4)self.C2=Combobox(self.windos,values=[x for x in range(1,13)],width=4)self.C3=Combobox(self.windos,values=[x for x in range(1,32)],width=4)self.L1.grid(row=0,column=0)self.L2.grid(row=0,column=2)self.L22.grid(row=0,column=4)self.C1.grid(row=0,column=1)self.C2.grid(row=0,column=3)self.C3.grid(row=0,column=5)self.B1.grid(row=0,column=6)# self.L3.place(x=10, y=200, width=280, height=220)listWeek=[" 周日 " ," 周一 " ," 周二 ", " 周三 " ," 周四 " ," 周五 ", " 周六 "]for inx, cmd in enumerate(listWeek):self.L33=Label(self.windos,text=cmd)self.L33.grid(row=1,column=inx)#是否闰年def leap_year(self,a):#a 不能用self.aif a % 4 == 0 and a % 100 != 0 or a % 400 == 0:return Trueelse:return Falsedef year_days(self,a,b):#year_days b不能用self.b# print(self.b)if b in (1,3,5,8,10,12):# days=31return 31elif b in (4,6,9,11):# days=30return 30else:if self.leap_year(self.a)==True:# days=29return 29else:# days=28return 28# return days

python使用tkinter万年历相关推荐

  1. 如何使用Python和Tkinter构建Toy Markdown编辑器

    Markdown editors are trending these days. Everybody is creating a markdown editor, and some of them ...

  2. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  3. Python使用tkinter构建一个多元回归预测模型GUI界面(接受用户输入数据并给出模型推理结果)

    Python使用tkinter构建一个多元回归预测模型GUI界面(接受用户输入数据并给出模型推理结果) 目录

  4. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command) 目录 tkinter应用案例 1.添加菜单栏组件 2.tkinter应用案例:添 ...

  5. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command) 目录 tkinter应用案例 1.添加右键弹出菜单 2.点击一个按钮弹 ...

  6. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas) 导读 动态演示调用python库的tkinter带你进入GUI世界(Canvas) 目录 t ...

  7. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Find/un ...

  8. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件) 导读 动态演示调用python库的tkinter带你进入GUI世 ...

  9. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Button ...

最新文章

  1. lottie插件_RN常用插件集
  2. python语句x 3 3执行_Python 3.x 学习笔记--杂
  3. php unable to save,php – Laravel save()未定义
  4. 一份北大信科内部流传的 “CS 自救指南”
  5. 安裝jpeg-6b png error错误解决方法
  6. 为什么Docker容器将占领世界
  7. 1 MM配置-企业结构-定义-定义评估级别
  8. 我的世界起床战争java 版服务器_我的世界中国版起床战争下载-我的世界中国版起床战争服务器 _5577安卓网...
  9. Linux常用命令3
  10. CCF-CSP认证考试历年试题集
  11. java 静态方法调用的问题
  12. 晶振时钟原理图、PCB设计指南
  13. 全面认识scratch
  14. 2019医学电子书下载PDF电子版下载
  15. ad中电容用什么封装_【AD封装】XH2.54mm座子插件贴片(带3D)
  16. 【Spring Securtiy】A granted authority textual representation is required
  17. 将两张图片合并成一张图片
  18. 游戏盾是什么/为什么app会被攻击
  19. 经典梯度下降、随机梯度下降、批量梯度下降是个啥?
  20. python逐行写入文件_Python文件逐行写入

热门文章

  1. Dynamo 如何生成管道
  2. 区块链技术的未来前景与发展趋势
  3. 《Linux 驱动:输入子系统》
  4. 【Multisim仿真】光控报警电路
  5. 使用NMT和pmap解决JVM资源泄漏问题
  6. C语言数码管节日灯,硬件课程设计报告可编程节日彩灯(C语言).pdf
  7. 微信小程序点击弹出输入框
  8. 模型预测控制系列讲解(二):模型预测控制算法发展进程
  9. MySQL-日期处理
  10. 点名器实现的随机原理(实现随机点名器)