Добавьте рамку на холст в Tkinter - PullRequest
1 голос
/ 20 января 2012

Используя Tkinter, у меня есть Toplevel с именем self.edit_window, Frame с именем frame и Canvas с именем canvas.Все, что я хочу сделать, это добавить рамку на холст, что я пытаюсь сделать, используя метод create_window:

#make canvas
canvas = Tkinter.Canvas(self.edit_window) 

#make frame and add to canvas
frame = Tkinter.Frame()
canvas.create_window(0,0, anchor = Tkconstants.NW, window = frame, width = 200, height = 200)

И я получаю следующую ошибку при вызове create_window:

TclError: can't use .173048428 in a window item of this canvas

И я понятия не имею, что это значит.Есть идеи?

1 Ответ

0 голосов
/ 20 января 2012

Код, который вы вводите, не дает этой ошибки.Вы уверены , что кода достаточно, чтобы проиллюстрировать проблему?

При этом ошибка, о которой вы говорите, соответствует попытке добавить на холст окно, не являющеесябрат или дитя холста.Согласно официальной документации tk:

Окно, указанное в pathName, должно быть либо дочерним элементом виджета canvas, либо дочерним элементом некоторого предка виджета canvas.PathName может не относиться к окну верхнего уровня.

Если вы сделаете ваш фрейм дочерним по отношению к холсту, эта проблема исчезнет (хотя, строго говоря, это не обязательно должно бытьнепосредственный ребенок).

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