2017-04-08 28 views
0
from tkinter import * 


pencere = Tk() #Pencereyi Oluşturyor 

def Ekmek(event): 
    print(0.6*x)   
#Here i am trying to calcute the carbohydrate for diabetes 
#1 gram of bread is 0.6 carbohydrate and i am trying to calculate the gram user enters 
def Patates(event): 
    print(0.16666666666666666) 

gramy = Label(text = "Yemeğin Gramını Girin:",fg = "green",bg = "black") 
gram = Entry(fg = "green",bg = "black") 
x = gram.get() 

#In this part i want to change the "x" to a 
#float value but it gives error.How can i fix it ? 


ekmek = Button(text="Ekmek",fg="orange",bg = "black") 
ekmek.bind("<Button-1>",Ekmek) 
patates = Button(text="Patates",fg="orange",bg = "black") 
patates.bind("<Button-1>",Patates) 
makarna = Button(text="Makarna",fg="orange",bg = "black") 
pilav = Button(text="Pilav",fg="orange",bg = "black") 

gramy.grid(row=0,column=1) 
gram.grid(row =0,column =2) 
ekmek.grid(row =1,column = 0) 
patates.grid(row =1,column = 1) 
makarna.grid(row = 1,column = 2) 
pilav.grid(row = 2,column = 0) 



pencere.mainloop() #Pencerenin Çarpıya 
+0

不要只是说它给错误,什么错误?首先,我建议你重新学习tkinter,因为你永远不会让用户写入任何东西。绑定到一个按钮或什么 – abccd

+0

但用户打算进入克,所以如果用户说230克,并说我想要面包它将要做(0.6 * 230),所以用户可以选择几乎所有的东西 – dartyet1

回答

0

你的问题的代码是非常有问题的,因为“X”将永远是""(空字符串),因为你把它直接在其创作不给任何时候用户输入。如你所知,""不能被浮动。

这是你的问题代码:

gram = Entry(fg = "green",bg = "black") 
x = gram.get() 

你应该把这里gram.get:

def Ekmek(event): 
    x = gram.get() 
    x=float(x.split('gram')[0]) 
    print(0.6*x) 

用户按下按钮后,这将检索X。

另一种方法是,你可以使用一个StringVar。

+1

为什么使用' StringVar更好?它增加了一个必须管理的额外对象,但不提供任何额外的值。如果你有理由认为它更好,如果你解释原因,你的答案可以得到改善。 –