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 相关文章推荐
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
python使用插值法画出平滑曲线
Dec 15 Python
python实现flappy bird游戏
Dec 24 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
对Python函数设计规范详解
Jul 19 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
python logging日志模块原理及操作解析
Oct 12 Python
python3实现elasticsearch批量更新数据
Dec 03 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 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 print EOF实现方法
2009/05/21 PHP
php伪静态之APACHE篇
2014/06/02 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python 多线程的实例详解
2017/09/07 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
python中Lambda表达式详解
2019/11/20 Python
python 画条形图(柱状图)实例
2020/04/24 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
公司授权委托书范文
2014/08/02 职场文书
归途列车观后感
2015/06/17 职场文书
60句有关成长的名言
2019/09/04 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
HTML中的表单元素介绍
2022/02/28 HTML / CSS