我在Tkinter写了3个函数。每个函数的形式为ObjectName(c,x,y),其中c是画布的名称。我希望每个函数在任何给定的画布中绘制形状。 示例:
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()
问题: 当我调用相同的函数在同一个画布上绘制两个形状时,它会绘制两个不同的画布:(
答案 0 :(得分:1)
每次调用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()