Привязка кнопки к функции VPython 7

В настоящее время я пытаюсь сделать физическое моделирование с использованием VPython на моем ноутбуке. Я хочу сделать графический интерфейс, чтобы, когда клиент нажимал кнопку запуска симуляции, он открывал Chrome и симуляция запускалась после получения ввода пользователя из полей ввода. Однако, когда я запускаю исходный код, chrome автоматически открывается, и я хочу, чтобы он открывался только тогда, когда пользователь нажимает кнопку запуска симуляции. Я пытался использовать лямбда-метод для привязки функции к кнопке, но она не работает. Вот очень упрощенная версия того, что я пытаюсь сделать:

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 (даже если я использовал лямбду), но я хочу, чтобы он делал это только при нажатии кнопки. Заранее спасибо.

1 ответ

Вот несколько демонстрационных программ vpython, которые вы можете запустить в браузере с помощью glowscript vpython

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

Просто нажмите Run рядом с изображением, и он запустит симуляцию.

Эти же демо-программы vpthon можно найти на github здесь.

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

Вы можете запускать программы из командной строки Windows, если на вашем компьютере установлен python 3.6. Просто введите

python BinaryStar.py

и он откроет веб-браузер и запустит демонстрационную программу BinaryStar vpython. Вы можете сделать то же самое для других демонстрационных программ в каталоге выше на github.

Возможно, вы можете заставить свою кнопку запустить команду "python myVpythonProgram.py", чтобы запустить программу vpython, которую вы хотите запустить в браузере.

Другие вопросы по тегам