Деление со значением 0 и цифрами силы в результате - PullRequest
0 голосов
/ 23 мая 2018

Я нуждаюсь в помощи с некоторым ZeroDivision.

В моем примере я получил optionMenu, который возвращает значение метке, который делится с записью, затем результат отображается в виденовая метка в столбце 3.

Я всегда хочу набрать запись, которая начинается с нуля, например, 0,250 и т. д., затем этот float делится со значением меток из optionMenu, а затем результат должен отображаться вновый ярлык с цифрами.Он работает нормально с int, но это не так, как это должно работать :) и теперь я немного растерялся.

Мой следующий код выглядит следующим образом, и я бы очень признателен за помощь :) Спасибо заранее.

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()

1 Ответ

0 голосов
/ 23 мая 2018

Это работает, когда я меняю его на DoubleVar, как в моем примере.

Но есть ли способ, которым я могу управлять длиной цифры в результате?

    self.priceVarLabel1 = DoubleVar()
    self.priceVarLabel1.set(float(0.00))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...