我使用tk.DoubleVar()
在tkinter GUI中保存变量。
但是,例如,如果我要显示百分比,则要这样显示。例如
0.05
-> 5%
所以我可以设置格式,但是使用非数字字符(例如'%')在我想使用var.get()
时似乎会引起问题,因为5%
不是有效的数值。
无论如何都可以使用变量来保留实际值,同时允许显示该值的格式化版本?
您可以使用(将:.0
改为显示5%
而不是5.00%
来将值转换为字符串)
print( "{:.0}%".format(var.get()*100) )
甚至使用特殊的{%}
,并且您不需要`* 100
print( "{:.0%}".format(var.get()) )
如果要同时具有-值和格式化字符串-您可以使用方法ie创建类。 to_string()
以字符串形式获取。
import tkinter as tk
class PercentVar(tk.DoubleVar):
def to_string(self):
return "{:.0%}".format(self.get())
# ---
root = tk.Tk()
myvar = PercentVar(value=0.05)
print('value:', myvar.get())
print('string:', myvar.to_string())
或者类可能具有类__str__
,当您print()
或使用str()
时,它会自动将字符串转换为格式化版本。>
import tkinter as tk
class PercentVar(tk.DoubleVar):
def __str__(self):
return "{:.0%}".format(self.get())
# ---
root = tk.Tk()
myvar = PercentVar(value=0.05)
print('value:', myvar.get())
print('string:', myvar)
print('string: ' + str(myvar))
print('string: {}'.format(myvar))
print(f'string: {myvar}')