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实现统计文本文件字数的方法
May 05 Python
详解Python文本操作相关模块
Jun 22 Python
Python实现中一次读取多个值的方法
Apr 22 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
搞清楚 Python traceback的具体使用方法
May 13 Python
python print出共轭复数的方法详解
Jun 25 Python
python动态文本进度条的实例代码
Jan 22 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
Jun 17 Python
变长双向rnn的正确使用姿势教学
May 31 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
BBS(php & mysql)完整版(八)
2006/10/09 PHP
组合算法的PHP解答方法
2012/02/04 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
荟萃全球保健品:维他购
2018/05/09 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
工艺员岗位职责
2014/02/11 职场文书
土木工程求职信
2014/05/29 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
什么是Python装饰器?如何定义和使用?
2022/04/11 Python