将按钮绑定到VPython 7功能

时间:2017-12-26 10:50:15

标签: python function lambda binding vpython

我目前正在尝试在笔记本电脑上使用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),但我只希望它在单击按钮时执行此操作。提前谢谢。

1 个答案:

答案 0 :(得分:0)

以下是一些vpython演示程序,您可以使用glowscript vpython在浏览器中运行

http://www.glowscript.org/#/user/GlowScriptDemos/folder/Examples/

只需单击图像旁边的运行,即可运行模拟。

这些相同的vpthon演示程序也可以在github上找到。

https://github.com/BruceSherwood/vpython-jupyter/tree/master/Demos_no_notebook

如果您的计算机上安装了python 3.6,则可以从Windows命令提示符运行程序。只需输入

即可

python BinaryStar.py

它将打开一个Web浏览器并运行BinaryStar vpython演示程序。您可以对github上面目录中的其他演示程序执行相同的操作。

也许你可以让你的按钮运行命令“python myVpythonProgram.py”来运行你想在浏览器中运行的vpython程序。