点击上方蓝字关注公众号加星标
上一章节讲了if语句的使用,大家学废了么?
今天给大家带来一个小案例,做一个小软件[恋爱笔记],话不多说,直接看效果图:

本次实例中使用的库:
#coding=gbkfrom tkinter import *import tkinter.messagebox as messageboximport tkinterimport timeimport datetimeimport pandas as pdfrom dateutil.relativedelta import relativedelta
使用tkinter搭好整体框架:
def __init__(self):master = tkinter.Tk()master.title("恋爱笔记")master.geometry('450x310')#创建菜单栏menubar = Menu(master)master.config(menu=menubar)
接着创建上图中的文件下拉菜单栏:
#创建下拉菜单栏filemenu = Menu(menubar,tearoff=0)menubar.add_cascade(label="文件",menu=filemenu)filemenu.add_command(label="新建",command=self.newfile)filemenu.add_command(label="打开",command=self.openfile)filemenu.add_command(label="保存",command=self.savefile)
接着就是容量框:
#问题一 Frame_1frame_1 = Frame(master)frame_1.pack()#容器框self.group = LabelFrame(frame_1,text="关于",padx=5,pady=5)self.group.grid()w = Label(self.group,text="\t恋爱笔记V1使用说明:\n 恋爱天数、恋爱倒计时可通过输入日期计算得出,\n然后可填写天数确认提交,会保存在当前路径生成txt")w.pack()
确定和提交按钮制作:
#确定按钮number = Button(frame_2,text="确定",command=self.getnumber)number.grid(row=1,column=2)#问题三 Frame_3frame_3 = Frame(master)frame_3.pack()submit = Button(frame_2,text="提交",command=self.allsubmit)submit.grid(row=1,column=3)
接着是标签输入组件:
# 设置纪念日日期输入标签组件labelName1 = tkinter.Label(master,text='纪念日日期: ',justify=tkinter.RIGHT,width=50)labelName1.place(x=-3, y=220, width=80, height=20)# 创建纪念日日期输入文本框组件varName1 = tkinter.StringVar(master, value='')entryName1 = tkinter.Entry(master,width=80,textvariable=varName1)entryName1.place(x=70, y=220, width=80, height=20)
注:输入组件代码是一样的,这里就不一一赘述了。
下面我们继续看看计算按钮组件和清除组件:
# 创建计算按钮组件,cal()主要把数据从输入文本框取出来def cal():raw1 =varName1.get()print("raw1:",raw1)ay = calculate(raw1)print("ay:",ay)anni1.set(int(ay))b1 = tkinter.Button(master,text='计 算',command=cal)b1.place(x=100, y=260, width=50, height=20)# 创建清除按钮组件def cancel():varName1.set('')anni1.set('')b2 = tkinter.Button(master,text='清 除',command=cancel)b2.place(x=300, y=260, width=50, height=20)
可以看到 ay = calculate(raw1),此处调用了calculate函数。
# 计算纪念日距离天数def calculate(a):b=pd.to_datetime(a)if runn(b.year)==366 and b.month==2 and b.day==29:dd=1461else:dd=daysif b.year<datetime.datetime.now().year:years=datetime.datetime.now().year-b.yearb=b.replace(year = b.year + years)today=pd.to_datetime(datetime.datetime.now().strftime('%Y-%m-%d'))if (b-today)/pd.Timedelta(1,'D')>=0:dif=(b-today)/pd.Timedelta(1,'D')else:dif=(b-today)/pd.Timedelta(1,'D')+ddreturn difdef runn(x):if x%400==0:return 366elif x%4==0 and x%100!=0:return 366else:return 365days=runn(int(datetime.datetime.now().strftime('%Y')))
这个calculate函数就是用来计算纪念日距离天数的。
以上所示只是[恋爱笔记]的部分核心代码段,感兴趣的同学可以私聊我获取源码,可能回复不是很及时。恋爱笔记V1.exe的下载链接可关注公众号回复:[恋爱笔记]获取。欢迎各位童鞋一起学习!

文章转载自ICTworker,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




