我有主画布
root = Tk()
canvas = Canvas(root, width=512, height=512)
canvas.pack()
例如,包含一些对象的类画布:
class My_object(Canvas):
def __init__(self, parent):
Canvas.__init__(self, parent)
self.create_line(0,0, 100, 100)
self.create_oval(0,0, 100, 100)
我想用某些坐标将My_object的示例添加到我的主画布中。怎么做? 如果我这样做:
obj = My_object(canvas)
obj.pack()
然后这个新对象取代了我的主画布
答案 0 :(得分:2)
如果您希望内部画布(或任何其他小部件)成为画布的一部分(即:与线条和其他对象一起滚动),请使用画布的create_window方法。
root = Tk()
canvas = Canvas(root, width=512, height=512)
canvas.pack()
...
child_canvas = My_object(canvas)
canvas.create_window(100, 100, window=child_canvas)
请注意,嵌入的窗口小部件的z轴始终高于任何绘制的项目。换句话说,它总是出现在任何线条,矩形等之上。