Python tkinter标签格式

时间:2015-04-20 22:44:52

标签: python tkinter label

我有一个Python \ Tkinter标签格式问题。

我有一个简单的主窗口,其标签的textvariable绑定到DoubleVar() 我想在DoubleVar()中显示美元金额, 如在" $ 123.45"

如何让Label以我想要的方式显示值?

我知道我可以将textvariable更改为StringVar()但是我失去了DoubleVar()的精度。我需要它用于应用程序中的其他计算。

我也试过对Label类进行子类化,但是在访问textvariable值时无法弄清楚要覆盖的方法。

如何告诉Label我希望如何格式化数字?

3 个答案:

答案 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