Tkinter gui中的指数函数

时间:2013-04-17 18:13:47

标签: python user-interface tkinter exponential

我在尝试在Tkinter gui中定义指数函数时遇到问题。我的Gui由三个组合框组成,我可以选择不同的数字。当我选择所有数字时,它会根据指数函数显示结果。我的意思如下:

  • 选择NumberA #Combobox 1
  • 选择NumberB #Combobox 2
  • 选择NumberC #Combobox 3

    Result = exp[(-NumberA/NumberB)* NumberC]
    

到目前为止我所拥有的内容如下,但它不起作用:

#Main Selection
def exponential(*args):
    try:
        product.set('%g' %math.exp((float(Num_A.get())/float(Num_B.get())*float(Num_C.get()),2)))
    except ValueError:
        pass

## variables
NumA = StringVar() 
NumB = StringVar() 
NumC = StringVar()

product= DoubleVar()

#Combo boxes, 
#NumA NumB and NumC are similar
ttk.Label(stepTen, text="Select A):").grid(column =3, row = 0)
NumA_Select = Combobox(stepTen, values=("0.1", "0.2", "0.3","0.4",),textvariable=Num_OneT)
NumA_Select.grid(column=4, row=0, columnspan="5", sticky="nswe")
NumA.trace("w",exponential)

## display results
ttk.Label(stepTen, text = "Exponential Dist result:").grid(column = 3, row = 12)
ttk.Label(stepTen, textvariable=product).grid(column = 4, row = 12)

#End Code
root.mainloop()

非常感谢你!

1 个答案:

答案 0 :(得分:1)

根据您的示例代码,您无法将NumANumBNumC设置为某个值,并且这些变量不会与任何小部件相关联。另外,您创建了名为NumANumBNumC的变量,但在您的函数中,您使用的是Num_ANum_BNum_C