在用户键入时将文本格式化为时间格式
当用户输入数字时,我正在尝试将文本格式化为00:00:00
Tk.Entry 文本框中的标准时间格式。
我知道 Tkinter 不是在用户键入时格式化文本的最简单、也不是最优化的框架,但我已经做到了这一点:
from Tkinter import *
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
def createWidgets(self):
sv = StringVar()
sv.trace("w", lambda name, index, mode, sv=sv: self.entryUpdateEndHour(sv))
endHourEntry = Entry(self, textvariable=sv)
endHourEntry.pack()
def entryUpdateEndHour(self, sv):
global x
x = sv.get()[0:2] + ':'
y = x + sv.get()[3:5] + ':'
z = y + sv.get()[6:8]
sv.set(z)
root = Tk()
app = Application(master=root)
app.mainloop()
这会打印出我想要的(12:45:67
),但实时格式很糟糕。例如,在输入两个数字时,我12:::
在文本框中输入,它会跳过我输入的每个第三个数字,因为它用:
.
如果有人对此答案有任何解决方法或解决方案,我将不胜感激。提前致谢。