【问题标题】:Binding a button to a VPython 7 function将按钮绑定到 VPython 7 函数
【发布时间】: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


    【解决方案1】:

    这里有一堆 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

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

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

    【讨论】:

    • 酷。但问题是我正在我的笔记本电脑上进行模拟,最后我想把它交给我的物理老师。为此,我想让它成为一个可执行文件,他可以在他的 Mac 笔记本电脑上运行,而无需下载 python。这对 VPython 可行吗? (请说是)
    猜你喜欢
    • 2021-10-30
    • 2018-11-11
    • 1970-01-01
    • 2016-01-31
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2020-12-04
    相关资源
    最近更新 更多