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的行注册单击或是双击事件.看例子吧:在数据库中创建数据 ...
随机推荐
- 我的openwrt开发相关文章
openwrt学习笔记: 在openwrt的学习过程中,走了非常多的弯路.一直以来有个期盼.希望能够出个简易教程,希望openwrt的同仁们能够更加高速的入手. . openwrt学习笔记(三十二): ...
- 查看eclipse版本信息
http://www.cnblogs.com/caiyuanzai/archive/2013/01/11/2855796.html 如果要查询eclipse数字版本号的话,可按如下进行操作: 1. 找 ...
- C#网络编程之Http请求
本片篇分享简单介绍C#中的Http请求,前几天帮朋友的项目封装ApiHelper,我粗糙的结果就如下,想想我真的是差的太远了.还有一位架构师也在封装这个Helper , 所以最后的结果当然是使用大牛的 ...
- 关于jq ajax封装以及ajax上传Webapi
jq的ajax完整版本 $(function () { fileChange(); }); function fileChange() { $('#fileinput').change ...
- asp.net导出EXCEL的好方法!(好用,导出全部数据)
1.调用方法: ExportExcel("application/ms-excel", "EXCEL名称.xls", GridView1, this.Page) ...
- Thinkphp5 多图上传
html代码 <div class="content" id="content_list"> <!-- 上传部分 --> <for ...
- lnmp手动新建虚拟机
1.在home/wwwroot/zhongjie 新建zhongjie文件夹 2.在usr/local/nginx/conf/vhost/zhongjie.conf 新建配置文件zhongj ...
- UNIX环境编程学习笔记(20)——进程管理之exec 函数族
lienhua342014-10-07 在文档“进程控制三部曲”中,我们提到 fork 函数创建子进程之后,通常都会调用 exec 函数来执行一个新程序.调用 exec 函数之后,该进程就将执行的程序 ...
- [转]oracle awr报告生成和分析
转自:http://blog.csdn.net/cuker919/article/details/8767328 最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题. 最近学习一下数 ...
- phpstorm 初体验
最近在学php,今天想要读一下公司刚外包网站的源代码,要安装一个php的集成环境,因最开始用过JetBrains的pycharm觉得很好用,这会儿还选用该家产品PHPStorm(为啥storm这个词, ...