Canvas polygon coords() using list comprehension
Dave Harris
dpharris76 at msn.com
Fri May 28 01:19:12 EDT 2004
I have written a reasonably clean way to perform coordinate transformations
on a polygon, but Tkinter Canvas is not being particularly cooperative. The
following program has been distilled down to a minimum and generates a
traceback (see below) when it runs.
It appears that the create_polygon() method is more versatile than the
coords() method.
Could someone can suggest a way to have the list comprehension not generate
tuples, that would probably create a coordinate list acceptable to coords()?
Thanks,
Dave Harris
# cantest.py - canvas test program
from Tkinter import *
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
c = Canvas(frame, width=300, height=300)
c.pack()
outline1 = [(100, 0), (200, 50), (150, 150)]
p1 = c.create_polygon(outline1, fill='', outline='black')
p2 = c.create_polygon(outline1, fill='', outline='red')
outline2 = [(x+10, y+20) for (x, y) in outline1]
c.coords(p2, outline2)
root = Tk()
app = App(root)
root.mainloop()
Traceback (most recent call last):
File "cantest.py", line 24, in ?
app = App(root)
File "cantest.py", line 20, in __init__
c.coords(p2, outline2)
File "C:\PYTHON23\Lib\lib-tk\Tkinter.py", line 2039, in coords
self.tk.splitlist(
_tkinter.TclError: bad screen distance "170)]"
More information about the Python-list
mailing list