Python Tkinter-在inital声明之后更改画布大小

2024-03-28 14:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

示例:

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()

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


Tags: 对象fromimportmasterconfig示例部件tkinter
2条回答

使用.config()命令可以轻松地调整画布大小,如下所示:

w.config(width=x height=y)

xy表示整数(整数)。您还可以添加一些其他自定义属性,如bgbackground),以进一步自定义画布。

另外,您在最后创建了一个全新的画布,所以这就是您的属性消失的原因。可以通过删除以w =开头的最后两行代码来解决这个问题。

您要寻找的是configure选项,正如文档化的here。基本上,类似这样的东西应该会有帮助,而不是创建一个新的画布:

w.config(width=200, height=200)

作为参考,之所以删除画布上的所有内容,是因为您创建了一个全新的画布,具有不同的大小和相同的名称。如果要更改现有对象的属性,则必须更改现有对象,而不是覆盖它。基本上,如果声明某个内容等于另一个内容(w=Canvas(…)),则覆盖该内容。

相关问题 更多 >