ユーザーの入力に合わせてテキストを時刻形式にフォーマットする
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
) が、ライブ フォーマットは良くありません。たとえば、2 つの数字を入力する12:::
と、テキスト ボックスに表示され、入力した 3 番目の数字が:
.
誰かがこの回答に対する回避策または解決策を持っている場合、私は非常に感謝しています。前もって感謝します。