Ошибки графического интерфейса. Не удается отрисовать объекты «Rectangle»

#python #zelle-graphics

#python #zelle-графика

Вопрос:

Я импортировал библиотеку GUI и не могу «отрисовать» любые объекты, которые являются «Rectangle». Я прикрепил ссылку на библиотеку, которую я использую, и пример того, как выглядит ошибка. Спасибо за любую предоставленную помощь.

https://mcsp.wartburg.edu//zelle/python/graphics.py

 from graphics import *

win = GraphWin("Test", 200, 200)

rect = Rectangle(Point(50, 50), Point(150,150)).draw(win)
stop = win.getMouse()
rect.undraw(win)
  

Это ошибка, которую я получаю от IDLE

Комментарии:

1. Похоже, что это недопустимый код — что такое kaden ? Одна из возможных проблем, которую я вижу, заключается в том, что rect на самом деле это не Rectangle созданный вами объект, это результат вызова .draw() этого объекта.

2. ‘kaden’ должен был быть ‘rect’. Это сработало для других объектов, таких как объекты Text или Line, когда вы сохраняете его как переменную, тогда вы могли бы позже использовать .undraw(), чтобы удалить его из окна.

3. Вы вызывали .draw() тот же оператор для этих других объектов? Попробуйте разделить его на два — rect = Rectangle(...) и rect.draw(...) .

4. Я все еще получаю ту же ошибку, поэтому я не думаю, что это все

5. Тогда вам нужно опубликовать фактическое сообщение об ошибке.

Ответ №1:

Проблема в этой строке:

 rect.undraw(win)
  

прямоугольник уже связан с win , поэтому вы не указываете это в качестве аргумента для undraw() . Вместо этого просто сделайте:

 rect.undraw()