我的问题很简单:我想设置一个频率,然后单击一个按钮来绘制相应的正弦函数。不幸的是,该程序不会更新频率值。当比例从零开始时,我理解频率始终为零。如何让程序更新频率?
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()
答案 0 :(得分:0)
variable
的{{1}}选项(以及Scale
的{{1}}选项)需要textvariable
,Label
或IntVar
,而不仅仅是任何python变量。它们之间的区别是返回值的类型(分别为int,float或str)。他们使用DoubleVar
方法来检索值,并使用StringVar
方法来更改它。
因此,以下更改将修复您的代码:
get
- > set
value = float()
- > value = DoubleVar(Top)