Python tkinter label 更新方法


Posted in Python onOctober 11, 2018

网上看的两个例子关于tkinter界面更新的,简单易懂,分享一下。

例子_1:

Python tkinter label 更新方法

代码_1:

from tkinter import Tk, Checkbutton, Label
from tkinter import StringVar, IntVar

root = Tk()

text = StringVar()
text.set('old')
status = IntVar()

def change():
 if status.get() == 1: # if clicked
  text.set('new')
 else:
  text.set('old')

cb = Checkbutton(root, variable=status, command=change)
lb = Label(root, textvariable=text)
cb.pack()
lb.pack()

root.mainloop()

例子_2:

Python tkinter label 更新方法

代码_2:

from tkinter import *
import time


class StopWatch(Frame):
 '''实现一个秒表部件'''
 msec = 50
 def __init__(self, parent=None, **kw):
  Frame.__init__(self, parent, kw)
  self._start = 0.0
  self._elapsedtime = 0.0
  self._running = False
  self.timestr = StringVar()
  self.makeWidgets()
  self.flag = True
 def makeWidgets(self):
  '''制作时间标签'''
  l = Label(self, textvariable = self.timestr)
  self._setTime(self._elapsedtime)
  l.pack(fill = X, expand = NO, pady = 2, padx = 2)
 def _update(self):
  self._elapsedtime = time.time() - self._start
  self._setTime(self._elapsedtime)
  self._timer = self.after(self.msec, self._update)
 def _setTime(self, elap):
  '''将时间格式改为 分:秒:百分秒'''
  minutes = int(elap/60)
  seconds = int(elap-minutes*60.0)
  hseconds = int((elap - minutes*60.0 - seconds) *100)
  self.timestr.set('%2d:%2d:%2d' %(minutes, seconds, hseconds))
 def Start(self):
  if not self._running:
   self._start = time.time() - self._elapsedtime
   self._update()
   self._running = True
 def Stop(self):
  '''停止秒表'''
  if self._running:
   self.after_cancel(self._timer)
   self._elapsedtime = time.time() - self._start
   self._setTime(self._elapsedtime)
   self._running = False
 def Reset(self):
  '''重设秒表'''
  self._start = time.time()
  self._elapsedtime = 0.0
  self._setTime(self._elapsedtime)


 def stopwatch(self):
  if self.flag == True:
   self.pack(side = TOP)
   Button(self, text = 'start', command = self.Start).pack(side = LEFT)
   Button(self, text = 'stop', command = self.Stop).pack(side = LEFT)
   Button(self, text = 'reset', command = self.Reset).pack(side = LEFT)
   Button(self, text = 'quit', command = self.quit).pack(side = LEFT)  
  self.flag = False


class Watch(Frame):
 msec = 1000
 def __init__(self, parent=None, **kw):
   Frame.__init__(self, parent, kw)
   self._running = False
   self.timestr1 = StringVar()
   self.timestr2 = StringVar()
   self.makeWidgets()
   self.flag = True
 def makeWidgets(self):
  l1 = Label(self, textvariable = self.timestr1)
  l2 = Label(self, textvariable = self.timestr2)
  l1.pack()
  l2.pack()
 def _update(self):
  self._settime()
  self.timer = self.after(self.msec, self._update)
 def _settime(self):
  today1 = str(time.strftime('%Y-%m-%d', time.localtime(time.time())))
  time1 = str(time.strftime('%H:%M:%S', time.localtime(time.time())))
  self.timestr1.set(today1)
  self.timestr2.set(time1)
 def start(self):
  self._update()
  self.pack(side = TOP)

if __name__ == '__main__':
 def main():
  root = Tk()
  root.geometry('250x150')
  frame1 = Frame(root)
  frame1.pack(side = BOTTOM)
  sw = StopWatch(root)
  stpwtch = Button(frame1, text = '秒表', command = sw.stopwatch)
  stpwtch.pack(side = RIGHT)
  mw = Watch(root)
  mywatch = Button(frame1, text = '时钟', command = mw.start)
  mywatch.pack(side = LEFT)
  root.mainloop()
 main()

以上这篇Python tkinter label 更新方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
让python的Cookie.py模块支持冒号做key的方法
Dec 28 Python
Python中操作MySQL入门实例
Feb 08 Python
python写入xml文件的方法
May 08 Python
python抓取网页中图片并保存到本地
Dec 01 Python
星球大战与Python之间的那些事
Jan 07 Python
在Windows中设置Python环境变量的实例讲解
Apr 28 Python
python 字典修改键(key)的几种方法
Aug 10 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Python安装tar.gz格式文件方法详解
Jan 19 Python
通过实例解析python创建进程常用方法
Jun 19 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 Python
Python中tqdm的使用和例子
Sep 23 Python
解读python如何实现决策树算法
Oct 11 #Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 #Python
对python requests的content和text方法的区别详解
Oct 11 #Python
使用pip发布Python程序的方法步骤
Oct 11 #Python
对python Tkinter Text的用法详解
Oct 11 #Python
python数据批量写入ScrolledText的优化方法
Oct 11 #Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 #Python
You might like
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
聊天室php&mysql(六)
2006/10/09 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
从javascript语言本身谈项目实战
2006/12/27 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
Python实现简易端口扫描器代码实例
2017/03/15 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
教师评语大全
2014/04/28 职场文书
员工福利申请报告
2015/05/15 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题