我目前正在尝试使用我的笔记本电脑上的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),但我只希望它在单击按钮时这样做。提前致谢。
这里有一堆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程序。