暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

py实战之恋爱笔记

ICTworker 2021-08-10
377

点击上方蓝字关注公众号加星标


上一章节讲了if语句的使用,大家学废了么?


今天给大家带来一个小案例,做一个小软件[恋爱笔记],话不多说,直接看效果图:



本次实例中使用的库:


    #coding=gbk
    from tkinter import *
    import tkinter.messagebox as messagebox
    import tkinter
    import time
    import datetime
    import pandas as pd
    from 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_1
          frame_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_3
            frame_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=1461
                  else:
                  dd=days
                  if b.year<datetime.datetime.now().year:
                  years=datetime.datetime.now().year-b.year
                  b=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')+dd
                  return dif




                  def runn(x):
                  if x%400==0:
                  return 366
                  elif x%4==0 and x%100!=0:
                  return 366
                  else:
                  return 365
                  days=runn(int(datetime.datetime.now().strftime('%Y')))


                  这个calculate函数就是用来计算纪念日距离天数的。


                  以上所示只是[恋爱笔记]的部分核心代码段,感兴趣的同学可以私聊我获取源码,可能回复不是很及时。恋爱笔记V1.exe的下载链接可关注公众号回复:[恋爱笔记]获取。欢迎各位童鞋一起学习!



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

                  评论