''' vp_tk_threading1.py using VPython (visual) and Tkinter together with the help of Python module thread (_thread) change the position of a 3D sphere in space with tk buttons get VPython Windows installer VPython-5.74.win32-py2.7.exe or VPython-5.74.win32-py3.2.exe from http://www.lfd.uci.edu/~gohlke/pythonlibs/ tested with Python27, Python32 and VPython574 by vegaseat 22feb2013 ''' import visual as vs try: # Python2 import Tkinter as tk import thread except ImportError: # Python3 import tkinter as tk import _thread as thread # will be global sphere = None def vthread(): global sphere vs.scene.title = "Sphere in space (3D drag with right mouse button)" vs.scene.autoscale = False sphere = vs.sphere(pos=(0, 0, 0), color=vs.color.green) def move_sphere_incr_x(event=None): """ moves along the original x axis incrementing x each time the Tkinter b_incr_x button is pressed """ x, y, z = sphere.pos sphere.pos = (x+1, y, z) def move_sphere_decr_x(event=None): """ moves along the original x axis decrementing x each time the Tkinter b_decr_x button is pressed """ x, y, z = sphere.pos sphere.pos = (x-1, y, z) root = tk.Tk() w = 280 h = 150 x = 450 y = 100 # use width x height + x_offset + y_offset (no spaces!) root.geometry("%dx%d+%d+%d" % (w, h, x, y)) root.title("Control Sphere from here") b_incr_x = tk.Button(root, text="move right on x axis (increment x)") # bind passes an event to function b_incr_x.bind("<Button-1>", move_sphere_incr_x) b_incr_x.grid(row=0, column=0, padx=20, pady=10) b_decr_x = tk.Button(root, text="move left on x axis (decrement x)") # bind passes an event to function b_decr_x.bind("<Button-1>", move_sphere_decr_x) b_decr_x.grid(row=1, column=0, padx=10) # use thread to do run VPython and Tkinter simultaneously # thread.start_new_thread(function, args) # args is an empty tuple here sphere = thread.start_new_thread(vthread, ()) root.mainloop()
Are you able to help answer this sponsored question?
Questions asked by members who have earned a lot of community kudos are featured in order to give back and encourage quality replies.
Anyone know what/which type of WndProc Windows Message is raised when someone is burning a CD? What I mean here is that if I'm using a software like ...
I´m not a professional in vb.net, but i try to make a tool for my colleague and me. I got a XMLTreeView on my form and i load a ...
Hi all you php buffs.
Out of simple curiosity I thought I would take a look at php.
I've been programing since I joined IBM as a trainee developer in ...