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实现的二叉树算法和kmp算法实例
Apr 25 Python
使用Python开发windows GUI程序入门实例
Oct 23 Python
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
Python多线程多进程实例对比解析
Mar 12 Python
Django ValuesQuerySet转json方式
Mar 16 Python
Django实现后台上传并显示图片功能
May 29 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 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不用递归遍历目录下所有文件的代码
2014/07/04 PHP
smarty简单应用实例
2015/11/03 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
详解php中 === 的使用
2016/10/24 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
理解JS事件循环
2016/01/07 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
vue props 一次传多个值实例
2020/07/22 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
Python列表对象实现原理详解
2019/07/01 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
实习医生自我评价
2013/09/22 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
国庆阅兵观后感
2015/06/15 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android