【发布时间】:2017-12-26 10:50:15
【问题描述】:
我目前正在尝试在笔记本电脑上使用 VPython 进行物理模拟。我想制作一个 GUI,以便当客户端按下运行模拟按钮时,它会打开 chrome 并在从输入框中获取用户输入后运行模拟。但是,当我运行源代码时,chrome 会自动打开,我希望它仅在用户按下运行模拟按钮时打开。我尝试使用 lambda 方法将函数绑定到按钮,但它不起作用。这是我正在尝试做的一个非常简化的版本:
import tkinter as tk
from vpython import *
### Simulation ###
def run_simulation(r):
sphere(radius=r)
### GUI ###
root = tk.Tk()
text_variable = tk.StringVar()
entry = tk.Entry(root, textvariable=text_variable, width=10)
entry.pack()
button = tk.Button(root, text='Run Simulation', command= lambda: run_simulation(eval(text_variable.get())))
button.pack()
root.mainloop()
简而言之,如果您运行此代码,它将自动打开 chrome(即使我使用了 lambda),但我只希望它在单击按钮时这样做。提前致谢。
【问题讨论】:
标签: python function lambda binding vpython