Python Tkinter - изменить размер холста после первоначального объявления - PullRequest
6 голосов
/ 06 марта 2012

Я хочу изменить размер холста после добавления некоторых виджетов

Пример:

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

Но кажется, что когда я повторно объявляю размер холста, объекты удаляются. Можно ли обновить холст после создания на нем каких-либо объектов?

1 Ответ

14 голосов
/ 06 марта 2012

То, что вы ищете, это опция конфигурации, как задокументировано здесь .По сути, что-то вроде этого должно помочь вместо создания нового холста:

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

Для справки, причина, по которой все было удалено из холста, заключается в том, что вы создали совершенно новый холст с другимразмер и то же имя.Если вы собираетесь изменить свойства существующего объекта, вы должны изменить существующий объект, а не перезаписывать его.Обычно вы перезаписываете что-то, если объявляете это равным чему-то другому (w=Canvas (...)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...