Python Tkinter - 在初始声明后更改画布大小

Jay*_*uso 7 python tkinter

我想在添加一些小部件之后更改画布大小

例:

from Tkinter import * 

master = Tk()
w = Canvas(master, width=100, height=100)
w.config(bg='white')
w.create_oval(90,90,110,110, width=0, fill = "ivory3")
w = Canvas(master, width=200, height=200)
w.pack()
mainloop()
Run Code Online (Sandbox Code Playgroud)

但似乎当我重新声明画布大小时,对象会被删除.在我创建了一些对象后,是否可以更新画布?

Pea*_*oto 17

你所寻找的是配置选项,如documentered 这里.基本上,这样的东西应该有所帮助,而不是创建一个新的画布:

w.config(width=200, height=200)
Run Code Online (Sandbox Code Playgroud)

作为参考,一切都被从Canvas中删除的原因是因为你创建了一个全新的Canvas,具有不同的大小和相同的名称.如果要更改现有对象的属性,则必须更改现有对象,而不是覆盖它.如果你声明它等于其他东西(w=Canvas(...)),基本上你会覆盖一些东西.

  • 杰出的。谢谢,我正在尝试 allsort - `update`、`modify` 等,我没有想到配置。赞赏。当然,它就像一个魅力。 (2认同)