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 基础学习第二弹 类属性和实例属性
Aug 27 Python
使用wxpython实现的一个简单图片浏览器实例
Jul 10 Python
Python字符串匹配算法KMP实例
Jul 18 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
python绘制散点图并标记序号的方法
Dec 11 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
如何使用Python自动控制windows桌面
Jul 11 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 24 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
利用python实现后端写网页(flask框架)
Feb 28 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中session变量的销毁
2014/02/27 PHP
php中opendir函数用法实例
2014/11/15 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
在Python中使用第三方模块的教程
2015/04/27 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
Python 对象中的数据类型
2017/05/13 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
django 类视图的使用方法详解
2019/07/24 Python
python super的使用方法及实例详解
2019/09/25 Python
YUV转为jpg图像的实现
2019/12/09 Python
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
实习生自我评价
2014/01/18 职场文书
小学美术教学反思
2014/02/01 职场文书
人事任命书格式
2014/06/05 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
幽默导游词开场白
2015/05/29 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
MySQL 字符集 character
2022/05/04 MySQL