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中的Classes和Metaclasses详解
Apr 02 Python
Python如何判断数独是否合法
Sep 08 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
python实现屏保计时器的示例代码
Aug 08 Python
关于Python作用域自学总结
Jun 10 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
Python模块future用法原理详解
Jan 20 Python
python如何将图片转换素描画
Sep 08 Python
Django websocket原理及功能实现代码
Nov 14 Python
matlab xlabel位置的设置方式
May 21 Python
Python中的程序流程控制语句
Feb 24 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/10/28 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
2013/09/25 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python字符串逐字符或逐词反转方法
2015/05/21 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
解密Python中的描述符(descriptor)
2015/06/03 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
python如何实现反向迭代
2018/03/20 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python for和else语句趣谈
2019/07/02 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
python如何删除文件中重复的字段
2019/07/16 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
一位农村小子的自荐信
2014/04/07 职场文书
三方协议书范本
2014/04/22 职场文书
服务承诺书
2015/01/19 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android