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的行注册单击或是双击事件.看例子吧:在数据库中创建数据 ...
随机推荐
- Windows命令处理进程
1. 查看进程命令 tasklist 2.以翻页模式查看进程 tasklist | more 3.搜索关键字查找进程 tasklist | findstr "cmd" ...
- CSS3小清新下拉菜单 简易大方
之前有分享过几款CSS3菜单和jQuery菜单,像这款HTML5/CSS3自定义下拉框 3D卡片折叠动画3D效果非常华丽,这次要分享的这款相对比较简单,很适合用在用户的操作面板上.先来看看效果图: 怎 ...
- linux中wget命令
Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协 ...
- 8.4 Java 命名规范
Class: 所有单词的首字母大写, TestJava Method: 第一个单词的首字母小写,之后每个单词的首字母大写, getAddressForMe() Property: 第一个单词的首字母小 ...
- Oracle 一个中文汉字 占用几个字节,由Oracle中字符集编码决定
Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定 查看oracle server端字符集 select userenv('language') from dual; 如果显 ...
- C++ 中的constkeyword
为什么使用const?採用符号常量写出的代码更easy维护:指针经常是边读边移动,而不是边写边移动:很多函数參数是仅仅读不写的.const最常见用途是作为数组的界和switch分情况标号(也能够用枚举 ...
- JUC回顾之-ConcurrentHashMap源码解读及原理理解
ConcurrentHashMap结构图如下: ConcurrentHashMap实现类图如下: segment的结构图如下: package concurrentMy.juc_collections ...
- 【DL】几种参数优化方法的比较
https://zhuanlan.zhihu.com/p/22252270 结尾的两张图不能更赞. PS:在用lstm做文本分类的时候,加了L2正则,把optim方法由之前的SGD换成Adam,效果提 ...
- 微信支付id出现的重复支付解决方法和app应用中多种支付方式之间的对比
1.微信支付的transId发起支付请求,未登录微信,先帐号登陆,否则直接去支付.这样的话,该transId跟该帐号绑定起来了, 如果下一次再重新使用该transId来支付请求,但是想切换其他的微信帐 ...
- MySQL 字符串拼接详解
在Mysql 数据库中存在两种字符串连接操作.具体操作如下一. 语法: 1. CONCAT(string1,string2,…) 说明 : string1,string2代表字符串,conca ...