Python tkinter 控件更新信息
下面几个例子关于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 控件更新信息的更多相关文章
- Tkinter 控件详细介绍
Tkinter 控件详细介绍 1.Button 按钮.类似标签,但提供额外的功能,例如鼠标掠过.按下.释放以及键盘操作/事件 2.Canvas 画布.提供绘图功能(直线.椭圆.多边形.矩形) ;可以包 ...
- C#如何解决对ListView控件更新以及更新时界面闪烁问题
第一个问题:如何更新ListView控件内容 很多时候运行窗体程序时,由于程序中使用了多线程加之操作不当,所以在对控件操作时会出现下面这样的异常: 这是因为我们在窗体中添加的控件都有属于自己的线程 ...
- python之Tkinter控件学习
转载自 http://www.cnblogs.com/kaituorensheng/p/3287652.html#_label0 阅读目录 1. 产品介绍 2. 设计规划 3. 相关知识 4. 源码 ...
- wx python 基本控件
一.静态文本控件 wx.StaticText(parent, id, label, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, n ...
- 云存储上传控件更新日志-Xproer.cloud2
官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/cloud2/index.asp 在线演示:http://www.ncmem.c ...
- Tkinter控件
1.顶层(Toplevel) Toplevel为其他控件提供单独的容器.共有四种类型(1)主顶层,作为根被应用,应该就是root(2)子顶层,依赖于根,根破坏,子顶层也被破坏(3)临时顶层,画在父顶层 ...
- Web大文件下载控件更新-Xproer.HttpDownloader
资源下载:cab安装包(x86),cab安装包(x64),xpi安装包,crx安装包,nat安装包,exe安装包,开发文档,根证书,VC库, 更新时间:2016-08-19 版本号:1,2,56, ...
- DevExpress的GridControl控件更新數據問題解決辦法
開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據. ...
- 双击获取GridView控件行信息
有网友要求在GridView控件上,不管是单击(onclick)还是双击(ondblclick),想获取所击行的信息.技术难度是为GridView的行注册单击或是双击事件.看例子吧:在数据库中创建数据 ...
随机推荐
- Linux可视化服务器管理工具webmin
webmin是一个可视化的linux服务器管理工具,可以帮助我们实现很多功能. Webmin官网: http://www.webmin.com/ 下载地址:http://prdownloads.sou ...
- 动态为页面添加CSS样式文件引用
动态为页面添加CSS样式文件引用: if (document.createStyleSheet) { //IE document.createStyleSheet("./Themes/Def ...
- 空基类优化—— EBCO—— empty base class optimization
完全参考自:<C++ Templates The Complete Guide>e_CN,p_281 16.2 空基类优化 最近周围有点吵,论文没看进去,随便翻了本书…… 下文没有多大意义 ...
- VCL 中的 Windows API 函数(1): AbortDoc
AbortDoc: 该函数终止当前打印作业并删除最好一次调用 StartDoc 函数写入的所有信息. 该函数在 Printers 单元的应用:AbortDoc(Canvas.Handle);
- Android学习笔记——保存文件(Saving Files)
本人邮箱:JohnTsai.Work@gmail.com,欢迎交流讨论. 欢迎转载,转载请注明网址:http://www.cnblogs.com/J ...
- linux echo命令
该篇文章转载于:http://www.cnblogs.com/ZhangShuo/articles/1829589.html linux的echo命令, 在shell编程中极为常用, 在终端下打印变量 ...
- https://www.cnblogs.com/zy-jiayou/p/7661415.html
Maven常用命令 1.1.Maven 参数 -D 传入属性参数 -P 使用pom中指定的配置 -e 显示maven运行出错的信息 -o 离线执行命令,即不去远程仓库更新包 -X 显示maven允许的 ...
- synchronized关键字的用法总结
synchronized关键字主要有以下这3种用法: 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代 ...
- BarTender连接不上数据库怎么办
由于各种原因,在使用BarTender连接到数据库时,有可能会出现无法连接的问题,下面下编就针对两种BarTender无法连接到数据库的问题,来教大家解决的方法. 第一种 BarTender无权打开文 ...
- SDK Manager.exe和AVD Manager.exe缺失,Android SDK Tools在检查java环境时卡住了,未响应卡死!
之前安装Android Studio的时候根据提示安装了Android SDK,但是发现目录下没有SDK Manager.exe和AVD Manager.exe,导致SDK的一些操作很不方便! 不知道 ...