likes
comments
collection
share

Tkinter小应用,python写出倒计时工具

作者站长头像
站长
· 阅读数 35

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

Tkinter小应用,python写出倒计时工具

倒计时小工具挺有用的,如果你是学生的话,可以折腾学习一下这个小工具。我用的是python+Tkinter写出来的。

这里面需要说一下Tkinter,Tkinter是Python的一个标准包,因此我们并不需要安装它。我们将从创建一个窗口开始,然后我们在其之上加入一些小组件,比如按钮,复选框等,并使用它们的一些属性。话不多说,让我们开始吧!

#!/usr/bin/python3
import tkinter
top = tkinter.Tk()
# 进入消息循环
top.mainloop()

  • 1、导入 Tkinter 模块
  • 2、创建控件
  • 3、指定这个控件的 master, 即这个控件属于哪一个
  • 4、告诉 GM(geometry manager) 有一个控件产生了。

Tkinter小应用,python写出倒计时工具

显示出来如上图所示,出现了一个框框,这样子我们就用上了tkinter模块了。

def __init__(self,master):
  frame = Frame(master)
  frame.pack()
  self.entryWidget = Entry(frame)
  self.entryWidget["width"] = 15
  self.entryWidget.pack(side=LEFT)
  self.hi_there = Button(frame, text="开始", command=self.start)
  self.hi_there.pack(side=LEFT)
  self.button = Button(frame, text="退出", fg="red", command=frame.quit)
  self.button.pack(side=LEFT)

首先初始化数据和窗口数据,然后新建两个按钮,开始和退出。上面的函数__init__是对类的初始化,这个类中所有的属性,都应该写在这里面。我们来分析一下上面的来自Tkinter 模块的控件。 Button(frame, text="开始", command=self.start) 就是生成一个按钮,然后这里面的frame就是Tkinter.Tk(),显示在按钮之上的是text文本,最后响应函数是self.start。也就是按下按钮会触发当前类下的函数start。

def start(self):
  text = self.entryWidget.get().strip()
  if text != "":
   num = int(text)
   self.countDown(num)

这是开始按钮触发,用到了Entry控件。其实就是读取text里面的字符串,当字符串不为空的时候,将它强制转换为整数秒,最后传送到计算函数countDown。

def countDown(self,seconds):
  lbl1.config(bg='yellow')
  lbl1.config(height=3, font=('times', 20, 'bold'))
  for k in range(seconds, 0, -1):
   if k == 30:
    print("\a")
   if k== 29:
    print("\a")
   if k== 28:
    print("\a")
   lbl1["text"] = k
   root.update()
   time.sleep(1)
  lbl1.config(bg='red')
  lbl1.config(fg='white')
  lbl1["text"] = "时间到!"
  tkMessageBox.showinfo("时间到!","时间到!")

countDown计算这秒数,其实就是一个循环,步数为-1,然后用上time.sleep(1)让它每一秒后才继续。到最后时间都了,修改背景,弹窗时间到了。

通过上面这个小东西,可以认识到Tkinter。基本是用python做带有界面的程序都会想到Tkinter,有需要的小伙伴可以去学习一下。当然还有更多有用的控件,如Listbox,Menu,Radiobutton等更多的控件可以去学习一下。

欢迎和我讨论有关程序的问题,也可以答疑。关注公众号:诗一样的代码,交一个朋友。觉得有用的话,留言回复下呗。