我正在 Tkinter 中编写 3 个函数。每个函数都采用 ObjectName(c,x,y) 的形式,其中 c 是 Canvas 的名称。我希望每个函数都在任何给定的 Canvas 上绘制形状。 示例:
from Tkinter import *
root = Tk()
def line(c,x,y):
root = Tk()
c = Canvas(root, width=600, height=800)
c.pack()
c.create_line(x-160,y,x+300,y)
drawLine(c,200,300)
root.mainloop()
问题: 当我调用同一个函数在同一个 Canvas 上绘制两个形状时,它会在两个不同的 Canvas 上绘制:(
请您参考如下方法:
每次您调用 line(或 drawLine,因为您的函数名称和用法似乎不一致)时,您的代码看起来都在创建一个新的 canvas 对象。您不应该在您的函数中创建一个新的根对象和 Canvas 对象。
尝试这样的事情:
from Tkinter import *
def drawLine(c, x, y):
c.create_line(x - 160, y, x + 300, y)
root = Tk()
c = Canvas(root, width=600, height=800)
c.pack()
drawLine(c, 200, 300)
drawLine(c, 300, 400)
drawLine(c, 350, 450)
root.mainloop()
