Mam formułę, którą muszę zmienić określoną figurę na podstawie którego z przycisku radiowego jest wybrany w momencie wykonania formuły.

Przyciski są następujące: -

radioframe = Frame(window)
glthick = DoubleVar()
radio_1 = Radiobutton(radioframe,text='12mm',\
variable = glthick,value=86.67)
radio_2 = Radiobutton(radioframe,text='15mm',\
variable = glthick,value=191.19)
radio_1.select()

Moim zrozumieniem jest to, że tego, który jest wybrany przycisk, zastosuje wartość odpowiadającą do zmiennej "Glushick"?

Następnie próbuję przekonwertować tę liczbę na numer zmiennokładowy do stosowania na następującym równaniu, nie próbuj czytać równania, matematyka jest dźwięk.

def formulaexecute():
    val1 = (entry1.get())
    val2 = (entry2.get())
    glthickval = float(glthick)
    try:
       floatval1 = float(val1)
       floatval2 = float(val2)
    except ValueError:
        message = "The numbers you have entered are not valid numbers"
        print("Error!", message)
        box.showerror("Invalid Input", message)
    floatval1 = float(val1)
    floatval2 = float(val2)
    bevel = (((floatval1/100)*2)+((floatval2/100)*2))*3.5
    formula12 = (((((((floatval1/100)*(floatval2)/100))*glthickval)+bevel+44)*2.4)*1.1)
    glprice12 = formula12 + bevel
    showprice12 = str(glprice12)[:4]
    box.showinfo('Final Calculation',('Your table is:+entry1.get()+'x'+en

Widzisz po Formule12 = próba korzystania z wartości pływakowej z przycisku radiowego w Glithickval, wersja przeliczonej pływakowej wartości przycisku radiowego.

Zwracany błąd jest "Float () Argument musi być ciągiem lub liczbą", wiem, że wiele osób dostaje te z powodu nieprawidłowo posiadających wartości, które nie mogą być wprowadzane, ale wiem w tym przypadku, że nie. więc jestem ze stratą.

Błąd opisuje specyficznie Glithickval = Float (Glushick) jako linię powodując problemy, ale działa dobrze dla każdej innej wersji.

Może jego ślepo proste, ale pomoc byłaby bardzo doceniana.

Rozwiązanie:-

glthickval = (glthick.get())
glthickvalfloat = float(glthickval)

Rodzaj, Lewis

0
LMCT 15 sierpień 2014, 17:55

2 odpowiedzi

Najlepsza odpowiedź

glthick to obiekt, a nie numer, więc musisz użyć .get(), aby uzyskać wartość:

glthickval = glthick.get()
1
Bryan Oakley 15 sierpień 2014, 22:16

Znalazłem problem, kwestia polegała na tym, że przycisk radiowy przypisuje zmienną liczbę na podstawie jego wyboru, ale wymaga funkcji połączenia, aby wyciągnąć to dowiedzieć się, a następnie przypisuj ją jako figura pływakowa do stosowania w następującym wzorze. Zajęło mi trochę czasu, ale mam to, miejmy nadzieję, że ktoś inny próbuje to przeczytać. Edytowałem oryginalny post, aby pokazać skorygowany blok kodu.

0
elixenide 15 sierpień 2014, 18:49