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通过Windows下远程控制Linux系统
Jun 20 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
pyqt5实现登录界面的模板
May 30 Python
Python socket非阻塞模块应用示例
Sep 12 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 Python
python map比for循环快在哪
Sep 21 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
Python中super().__init__()测试以及理解
Dec 06 Python
基于Python编写一个监控CPU的应用系统
Jun 25 Python
Python如何加载模型并查看网络
Jul 15 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
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
js 替换
2008/02/19 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
js数据类型检测总结
2018/08/05 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
阿拉伯书店:Jamalon
2019/07/24 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
中药专业毕业自荐书范文
2014/02/08 职场文书
班级旅游计划书
2014/05/03 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
北大自主招生自荐信
2015/03/04 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
2016年教师节慰问信
2015/12/01 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
Golang并发操作中常见的读写锁详析
2021/08/30 Golang