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实现简单神经网络算法
Mar 10 Python
pandas 转换成行列表进行读取与Nan处理的方法
Oct 30 Python
python 字符串只保留汉字的方法
Nov 16 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
python nmap实现端口扫描器教程
May 28 Python
Python sklearn中的.fit与.predict的用法说明
Jun 28 Python
Python接口自动化测试的实现
Aug 28 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
详解Python中的进程和线程
Jun 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
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
php面向对象重点知识分享
2019/09/27 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
javascript操作元素的常见方法小结
2019/11/13 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
数据员岗位职责
2013/11/19 职场文书
运动会领导邀请函
2014/02/05 职场文书
文明餐桌活动方案
2014/02/11 职场文书
副总经理岗位职责
2014/03/16 职场文书
幼儿园新年寄语
2014/04/03 职场文书
学习型班组申报材料
2014/05/31 职场文书
档案工作汇报材料
2014/08/21 职场文书
庆七一活动总结
2014/08/27 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript