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使用xauth方式登录饭否网然后发消息
Apr 11 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
Python排序搜索基本算法之插入排序实例分析
Dec 11 Python
Python格式化输出%s和%d
May 07 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
使用opencv中匹配点对的坐标提取方式
Jun 04 Python
如何在Windows中安装多个python解释器
Jun 16 Python
超级实用的8个Python列表技巧
Aug 24 Python
python 使用csv模块读写csv格式文件的示例
Dec 02 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企业级应用之常见缓存技术篇
2011/01/27 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
详解nodejs模板引擎制作
2017/06/14 NodeJs
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
vue实现通讯录功能
2018/07/14 Javascript
Element Input组件分析小结
2018/10/11 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
实现python版本的按任意键继续/退出
2016/09/26 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python何时应该使用Lambda函数
2019/07/02 Python
Python处理PDF与CDF实例
2020/02/26 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
幼儿园保育员辞职信
2014/01/12 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
Go语言编译原理之源码调试
2022/08/05 Golang