下面几个例子关于tkinter界面更新的,简单易懂,分享一下。

  • 例子_1:

  • 代码_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:

  • 代码_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 控件更新信息的更多相关文章

  1. Tkinter 控件详细介绍

    Tkinter 控件详细介绍 1.Button 按钮.类似标签,但提供额外的功能,例如鼠标掠过.按下.释放以及键盘操作/事件 2.Canvas 画布.提供绘图功能(直线.椭圆.多边形.矩形) ;可以包 ...

  2. C#如何解决对ListView控件更新以及更新时界面闪烁问题

    第一个问题:如何更新ListView控件内容 很多时候运行窗体程序时,由于程序中使用了多线程加之操作不当,所以在对控件操作时会出现下面这样的异常:   这是因为我们在窗体中添加的控件都有属于自己的线程 ...

  3. python之Tkinter控件学习

    转载自  http://www.cnblogs.com/kaituorensheng/p/3287652.html#_label0 阅读目录 1. 产品介绍 2. 设计规划 3. 相关知识 4. 源码 ...

  4. wx python 基本控件

    一.静态文本控件 wx.StaticText(parent, id, label, pos=wx.DefaultPosition,    size=wx.DefaultSize, style=0, n ...

  5. 云存储上传控件更新日志-Xproer.cloud2

    官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/cloud2/index.asp 在线演示:http://www.ncmem.c ...

  6. Tkinter控件

    1.顶层(Toplevel) Toplevel为其他控件提供单独的容器.共有四种类型(1)主顶层,作为根被应用,应该就是root(2)子顶层,依赖于根,根破坏,子顶层也被破坏(3)临时顶层,画在父顶层 ...

  7. Web大文件下载控件更新-Xproer.HttpDownloader

    资源下载:cab安装包(x86),cab安装包(x64),xpi安装包,crx安装包,nat安装包,exe安装包,开发文档,根证书,VC库,   更新时间:2016-08-19 版本号:1,2,56, ...

  8. DevExpress的GridControl控件更新數據問題解決辦法

    開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據. ...

  9. 双击获取GridView控件行信息

    有网友要求在GridView控件上,不管是单击(onclick)还是双击(ondblclick),想获取所击行的信息.技术难度是为GridView的行注册单击或是双击事件.看例子吧:在数据库中创建数据 ...

随机推荐

  1. jQuery使用动态渲染表单功能完成ajax文件下载

    原文链接:http://www.poluoluo.com/jzxy/201301/195126.html 封装的通用js函数代码: // Ajax 文件下载 jQuery.download = fun ...

  2. PolymiRTS 数据库- miRNA SNP数据库

    背景: miRNA通过和mRNA的3'UTR区结合,导致mRNA讲解或者抑制mRNA翻译,从而实现转录后调控的作用: 如果在miRNA和 mRNA的结合区域,发生了snp,就可能会影响miRNA和mR ...

  3. iPhone 配置使用工具

    “iPhone 配置实用工具”可让您轻松地创建.维护和安装配置描述文件及对配置描述文件进行加密,跟踪和安装预置描述文件与授权的应用程序,以及采集包括控制台日志在内的设备信息. http://suppo ...

  4. Java对象序列化给分布式计算带来的方便

    什么时候使用序列化: 一:对象序列化可以实现分布式对象.主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样.二:对象序列化不仅保留一个对象的数据,而且递归保存对象引 ...

  5. yum更换国内源 yum下载rpm包 源码包安装

    7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 yum更换国内源 cd  /etc/yum.repo.d/ 删除源 rm -f   dvd.repo rm -f  C ...

  6. SVN中图标符号的含义

    黄色感叹号(有冲突): 这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的 ...

  7. Redis使用示例及在PHP环境中用redis存储session

    在文件夹redis-3.2.0下 1. 启动redis服务 nohup ./src/redis-server redis.conf & 2. 停止服务 #使用客户端 ./src/redis-c ...

  8. 获取微信小程序源码

    https://blog.csdn.net/aaron9185/article/details/80576183 http://lrdcq.com/me/read.php/66.htm https:/ ...

  9. Eclipse------新建文件时没有JSP File解决方法

    1.为没有web选项的eclipse添加web and JavaEE插件 .在Eclipse中菜单help选项中选择install new software选项 .在work with 栏中输入 Ju ...

  10. spray json, jackson 转到type时多key和少key的比较

    有组合关系的三个class定义 A { B { C {...} ... } ... } 每个class都有loadFromJson和writeAsJson方法.过去几年,三个class里的成员变量一直 ...