Tkinter 避免小数点重复
Tkinter Avoid Decimal Dot Repeatse
所以我有一个非常简单的问题,因为我对编程还很陌生。差不多,我正在使用 tkinter 构建一个计算器,我有一个小数点按钮和一个小数点绑定函数来将它与点 (.) 绑定。我的小问题是,当我点击小数点按钮几次时,我的条目小部件允许小数点重复。例如,这可能发生:873...40..4。我怎样才能让我的输入小部件识别出整数中有多个小数点,所以它不允许这种情况发生。
这是我目前尝试过的方法:
def key_decimal(number):
string = e.get()
e.delete(0, END)
e.insert(0, string + '.')
if string == int(string) + '..':
e.delete(e.index('end') - 1)
因为 .get()
returns 一个字符串,对其调用 count()
方法
def key_decimal(number):
string = e.get()
if string.count('.')<=1:
print('True')
else:
print('False')
您可以替换任何您需要的代码,而不是 True 或 False
您可以使用 tkinter 输入验证来防止输入超过 1 个小数点。
from tkinter import *
window = Tk()
def decimal_check(proposed):
if proposed.count('.') <= 1:
return True
else:
return False
number = Entry(window, validate="all")
number['validatecommand'] = (number.register(decimal_check),'%P')
number.pack()
window.mainloop()
每当对条目小部件进行更改时,此代码将 运行 decimal_check
函数。如果用户尝试输入多于 1 个小数点,则不会更新该值。
所以我有一个非常简单的问题,因为我对编程还很陌生。差不多,我正在使用 tkinter 构建一个计算器,我有一个小数点按钮和一个小数点绑定函数来将它与点 (.) 绑定。我的小问题是,当我点击小数点按钮几次时,我的条目小部件允许小数点重复。例如,这可能发生:873...40..4。我怎样才能让我的输入小部件识别出整数中有多个小数点,所以它不允许这种情况发生。
这是我目前尝试过的方法:
def key_decimal(number):
string = e.get()
e.delete(0, END)
e.insert(0, string + '.')
if string == int(string) + '..':
e.delete(e.index('end') - 1)
因为 .get()
returns 一个字符串,对其调用 count()
方法
def key_decimal(number):
string = e.get()
if string.count('.')<=1:
print('True')
else:
print('False')
您可以替换任何您需要的代码,而不是 True 或 False
您可以使用 tkinter 输入验证来防止输入超过 1 个小数点。
from tkinter import *
window = Tk()
def decimal_check(proposed):
if proposed.count('.') <= 1:
return True
else:
return False
number = Entry(window, validate="all")
number['validatecommand'] = (number.register(decimal_check),'%P')
number.pack()
window.mainloop()
每当对条目小部件进行更改时,此代码将 运行 decimal_check
函数。如果用户尝试输入多于 1 个小数点,则不会更新该值。