我需要一些ZeroDivision的帮助。
在我的例子中,我得到一个optionMenu,它返回一个标签值,whitch用一个条目分割,然后结果显示在第3列的新标签中。
我总是想输入一个以零开头的条目,如0.250等,然后将此浮点数与optionMenu中的标签值分开,然后结果应显示在带有数字的新标签中。 它适用于int,但这不是它应该如何工作:)现在我有点迷失。
我的以下代码看起来像这样,我真的很感激有点帮助:) Thx提前。
from tkinter import *
class App(Frame):
def __init__(self, root=None):
Frame.__init__(self, root)
self.materialPrice = {'Brick': 70, 'Rockwool': 50, 'Concrete': 20}
materialvariable1 = StringVar(self, root)
materialvariable1.set("Choose material")
materialvariable2 = StringVar(self, root)
materialvariable2.set("Choose materiale")
self.w1 = OptionMenu(root, materialvariable1, *self.materialPrice, command=self.displayPrice)
self.w1.grid(row=2, column=0, columnspan=1, sticky='WE')
self.w2 = OptionMenu(root, materialvariable2, *self.materialPrice, command=self.displayPrice2)
self.w2.grid(row=3, column=0, columnspan=1, sticky='WE')
self.var = IntVar()
self.var.set(float(0.00))
self.var2 = IntVar()
self.var2.set(float(0.00))
self.entry1 = Entry(root, textvariable=self.var)
self.entry1.grid(row=2, column=1)
self.entry2 = Entry(root, textvariable=self.var2)
self.entry2.grid(row=3, column=1)
self.priceVarLabel1 = IntVar()
self.priceVarLabel1.set(float(0.00))
self.priceVarLabel2 = IntVar()
self.priceVarLabel2.set(float(0.00))
self.priceVarValue1 = Label(root, textvariable=self.priceVarLabel1, relief='sunken')
self.priceVarValue1.grid(row=2, column=2, columnspan=1, sticky='WE')
self.priceVarValue2 = Label(root, textvariable=self.priceVarLabel2, relief='sunken')
self.priceVarValue2.grid(row=3, column=2, columnspan=1, sticky='WE')
self.resultlabel1 = IntVar()
self.resultlabel1.set(float(0.00))
self.resultlabel2 = IntVar()
self.resultlabel2.set(float(0.00))
self.label1 = Label(root, textvariable=self.resultlabel1)
self.label1.grid(row=2, column=3, columnspan=1, sticky='WE')
self.label2 = Label(root, textvariable=self.resultlabel2)
self.label2.grid(row=3, column=3, columnspan=1, sticky='WE')
def displayPrice(self, value):
self.resultlabel1.set(self.var.get() / self.materialPrice[value])
self.priceVarLabel1.set(self.materialPrice[value])
def displayPrice2(self, value):
self.resultlabel2.set(self.var2.get() / self.materialPrice[value])
self.priceVarLabel2.set(self.materialPrice[value])
root = Tk()
app = App(root)
root.title("help")
root.mainloop()
答案 0 :(得分:0)
当我将它更改为DoubleVar时,它就像我的例子一样。
但有没有办法,我可以管理结果的数字长度?
self.priceVarLabel1 = DoubleVar()
self.priceVarLabel1.set(float(0.00))