#!/bin/sh
""":"
exec python $0 ${1+"$@"}
"""
# -------------------- HelloMarkers.py --------------------
#
# This program demonstrates all methods available for markers.
# Note that this program does not do anything useful;
# its purpose is to try out functionality only.
#
from Tkinter import * # The Tk package
import Pmw # The Python MegaWidget package
import math # import the sin-function
master = Tk() # build Tk-environment
ncurves = 4 # draw 4 curves
npoints = 32 # use 32 points on each curve
if not Pmw.Blt.haveblt(master): # Is Blt installed?
print("BLT is not installed!")
else:
vector_x = [] # make vector for x-axis
vector_y = []
for y in range(ncurves):
vector_y.append([])
for x in range(npoints+1):
vector_x.append(x*0.1)
# fill vectors with cool graphs
for c in range(ncurves):
vector_y[c].append(math.sin(c*x*0.1))
g = Pmw.Blt.Graph(master)
g.pack(expand=1, fill='both')
for c in range(ncurves):
curvename = 'sin(' + str(c) +'x)'
g.line_create(curvename,
xdata=tuple(vector_x),
ydata=tuple(vector_y[c]),
symbol='')
g.configure(title='Hello Markers')
########################## marker_create ############################
g.marker_create("text", name="theText" )
g.marker_create("line", name="theArrow")
g.marker_create("bitmap", name="theBitmap")
g.marker_create("image", name="theImage")
g.marker_create("polygon", name="thePolygon")
g.marker_create("window", name="theWindow")
######################### marker_configure ##########################
g.marker_configure("theText",
coords=(0.2, 0.9),
text="a comment",
background="lightblue")
g.marker_configure("theArrow",
coords=(0.2, 0.8, 0.35, 0.67, 0.35, 0.72,
0.35, 0.67, 0.28, 0.67),
outline="red")
g.marker_configure("theBitmap",
background="lightblue",
foreground="blue",
coords=(1.5, 0.7),
bitmap = "questhead")
img = PhotoImage(file = 'blueball.gif', master=master)
g.marker_configure("theImage",
coords=(2.0, 0.6),
image=img)
coords = ()
for i in range(5): # make a star
x = 2.0 +0.2*math.sin(math.pi*i*0.8)
y = 0.6 +0.2*math.cos(math.pi*i*0.8)
coords = coords + (x, y)
g.marker_configure("thePolygon",
coords= coords,
fill="lightblue",
linewidth=1,
outline="blue")
b = Button(g, text="Quit!", command=master.quit)
g.marker_configure("theWindow",
coords=(0.3, -0.85),
window=b)
######################### marker_before ##########################
# put the image in front of the polygon
g.marker_before("thePolygon", "theImage")
######################### marker_after ###########################
# put the polygon after the image (no change)
g.marker_after("theImage", "thePolygon")
######################### marker_bind ############################
def mouseMove(event):
coords = g.invtransform(event.x, event.y)
g.marker_configure("theBitmap", coords=coords)
# bind the bitmap to mouse-motion event, so that it follows the
# mouse as long as the mouse is over it.
g.marker_bind("theBitmap", "<Motion>", mouseMove)
g.marker_bind("theText", "<Motion>", mouseMove) # bind another
######################## marker_unbind ############################
g.marker_unbind("theText", "<Motion>") # cancel the Text-bind.
######################### marker_cget #############################
coords = g.marker_cget("thePolygon", "coords")
print "coords of the polygon: ", coords
######################### marker_delete ############################
g.marker_create("text", name="text2", coords=(1,1), text="dummy")
g.marker_delete("text2") # delete the marker.
########################## marker_exists ###########################
if g.marker_exists("theBitmap"):
print 'marker "theBitmap" exists'
else:
print 'marker "theBitmap" does not exist'
########################### marker_names ###########################
all = g.marker_names()
some = g.marker_names("*g*") # get all that contains a 'g'
print "all bitmaps containing a g are:",
for key in some:
print key,
print "\n"
########################## marker_type ##############################
type = g.marker_type("thePolygon")
print "the polygon is of type:", type
master.mainloop()