使用比例

时间:2017-10-25 09:02:29

标签: python matplotlib tkinter

我的问题很简单:我想设置一个频率,然后单击一个按钮来绘制相应的正弦函数。不幸的是,该程序不会更新频率值。当比例从零开始时,我理解频率始终为零。如何让程序更新频率?

from tkinter import *
import numpy as np
import matplotlib.pyplot as plt

Top = Tk()

value = float()
Label(textvariable=value).pack()
Scale(from_=0, to_=10, variable=value).pack()

def plot():
    freq = value
    t = np.arange(0,20,0.01)
    f = np.sin(2*np.pi*freq*t)
    plt.plot(t,f,'r-')
    plt.show()


Button(text='Plot', command=plot).pack()

mainloop()

1 个答案:

答案 0 :(得分:0)

variable的{​​{1}}选项(以及Scale的{​​{1}}选项)需要textvariableLabelIntVar,而不仅仅是任何python变量。它们之间的区别是返回值的类型(分别为int,float或str)。他们使用DoubleVar方法来检索值,并使用StringVar方法来更改它。

因此,以下更改将修复您的代码:

get - > set

value = float() - > value = DoubleVar(Top)