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中用format函数格式化字符串的用法
Apr 08 Python
浅析Python中signal包的使用
Nov 13 Python
python常用函数详解
Sep 13 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
Python Selenium库的基本使用教程
Jan 04 Python
python Autopep8实现按PEP8风格自动排版Python代码
Mar 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中将数组存到文件里的实现代码
2012/01/19 PHP
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
PHP6新特性分析
2016/03/03 PHP
PHP CURL使用详解
2019/03/21 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
jquery cookie插件代码类
2009/05/26 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
Django返回json数据用法示例
2016/09/18 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
python 公共方法汇总解析
2019/09/16 Python
python序列化与数据持久化实例详解
2019/12/20 Python
tensorflow 实现数据类型转换
2020/02/17 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
光声世纪笔试题目
2012/08/25 面试题
博士生入学考试推荐信
2013/11/17 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
劳资员岗位职责
2015/02/13 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android