我有一个Python \ Tkinter标签格式问题。
我有一个简单的主窗口,其标签的textvariable
绑定到DoubleVar()
我想在DoubleVar()
中显示美元金额,
如在" $ 123.45"
如何让Label以我想要的方式显示值?
我知道我可以将textvariable更改为StringVar()
但是我失去了DoubleVar()
的精度。我需要它用于应用程序中的其他计算。
我也试过对Label类进行子类化,但是在访问textvariable值时无法弄清楚要覆盖的方法。
如何告诉Label我希望如何格式化数字?
答案 0 :(得分:1)
你做不到。至少,不是自动的。您可以仅为“$”使用单独的标签,也可以手动格式化标签的字符串。
答案 1 :(得分:0)
import tkinter as tk
master = tk.Tk()
## str() temporarily changes the type of the variable to a string*
label = tk.Label(text=("$"+str(Doublevar()))
label.pack()
master.mainloop()
答案 2 :(得分:-1)
你可以创建一个等于" $"的变量。与转换为字符串的期望值连接,然后显示该字符串变量而不是双变量本身。例如:
from tkinter import *
root = Tk()
class MyClass:
def __init__(self, master):
self.textVariable = DoubleVar()
self.stringTextVariable = "$" + str(self.textVariable)
self.myLable = Label(master, text=self.stringTextVariable).pack()
variable = MyClass(root)
root.mainloop()
覆盖self.textVariable
的值将导致self.myLabel
在程序再次运行时显示新值。
如果您需要在程序的其他位置使用double值,只需使用self.textVariable
变量(不会显示在GUI中)而不是显示的self.stringTextVariable
。