我正在开发一个应用程序,在这个应用程序中,用户将创建包括日期、电话号码和身份证号码等项目的个人资料。我想对其进行设置,以便在用户键入数据时对数据进行格式化(例如,在标识号的适当位置添加破折号)。如果用户输入正确,一切正常,但如果必须返回,则会出现一些问题。首先,添加的破折号不会随着空格键的按下而删除。第二,如果你在破折号后面纠正了数字,多余的破折号会被添加到它们不属于的地方。你知道吗
以下是片段:
from Tkinter import *
class App:
def __init__(self, master):
self.label = Label(text="ID#: ")
self.entry = Entry()
self.label.grid(row=0, column=0)
self.entry.grid(row=0, column=1)
self.entry.focus_set()
root.bind('<Key>', self.formatData)
def formatData(self, master):
currentData = self.entry.get()
if len(currentData) == 3:
self.entry.insert(3, '-')
elif len(currentData) == 6:
self.entry.insert(6, '-')
root = Tk()
app = App(root)
root.mainloop()
任何帮助都将不胜感激。谢谢。你知道吗
一个更好的解决方案不是在运行中插入破折号,而是始终从数字的干净副本开始,没有任何破折号,然后再添加它们。这样,无论进行了多少次修改,都将始终在正确的空格中添加破折号。你知道吗
举个例子:
一些附加说明:
for
循环中,但为了演示的目的,我将它们分开。你知道吗相关问题 更多 >
编程相关推荐