【发布时间】:2016-10-09 12:51:53
【问题描述】:
我正在尝试制作一个使用 VPython 进行可视化的简单 GUI 应用程序。我这样做是成功的。但是,当我关闭 VPython 窗口时,我的所有其他窗口(我使用 Tkinter 制作的)也会关闭,从而结束整个程序的进程。我已经尝试过 scene.exit = False 但 id 似乎不起作用。
请有人帮助我
from Tkinter import *
import Tkinter as tk
from visual import *
import serial
root = Tk()
root.wm_title("MultiSense(Desktop Version)")
root.resizable(width=False, height=False)
root.geometry('400x500')
ser = serial.Serial('COM5', 9600)
def dist_window():
windist = tk.Toplevel(root)
windist.wm_title("Distance Sensor")
windist.resizable(width=False, height=False)
windist.geometry('100x150')
def senseDist():
scene.title = "Visualization"
scene.fullscreen = True
scene.visible = False
objDist = cylinder(display=scene, length=20, color=color.green, raduis=1, pos=(-20, 0, 0))
while (1 == 1):
rate(20)
if (ser.inWaiting() > 0):
myData = ser.readline()
distance = float(myData)
objDist.length = distance
btnStart = Button(windist, text="Calculate distance", command=senseDist)
btnStart.pack(side=LEFT, fill=X)
def doNothing():
print 'Nothing'
# ******** Main Window ********** #
menu = Menu(root)
root.config(menu=menu)
fileMenu = Menu(menu)
menu.add_cascade(label="File", menu=fileMenu)
subMenu1 = Menu(fileMenu)
subMenu1.add_command(label="Distance Sensor", command=dist_window)
fileMenu.add_cascade(label='Go to ...', menu=subMenu1, underline=0)
fileMenu.add_separator()
fileMenu.add_command(label="Exit", command=root.quit)
helpMenu = Menu(menu)
menu.add_cascade(label="Help", menu=helpMenu)
helpMenu.add_command(label="How to use MultiSense", command=doNothing)
helpMenu.add_separator()
helpMenu.add_command(label="About MultiSense", command=doNothing)
root.wm_iconbitmap('windowicon.ico')
root.mainloop()
我对 python 很陌生。我正在使用 Arduino 发送串行数据。这段代码确实没有错误。我只想关闭 VPython 窗口,但它总是最终关闭整个程序。
【问题讨论】:
-
你能发布一个“有问题的”工作代码示例吗? Linux?
-
感谢您的快速回复。我已经编辑了我的问题。顺便说一句,我在 Windows 上工作
标签: python user-interface tkinter vpython