网上看的两个例子关于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:
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(
'-:-:-' %(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()
转载请注明原文地址: https://ju.6miu.com/read-673897.html