问题描述
使用Zelle的graphics.py模块,如何更改已经绘制到GraphicsObject
窗口的GraphWin
的层次?根据我的理解,GraphicsObject
的排列顺序是按照使用draw()
绘制的顺序进行的,稍后绘制的形状将显示在先前绘制的形状之上,而我使用的graphics.py documentation却没有提供以后更改此顺序的任何方法。给定这样的代码:
win = GraphWin("Test",500,500)
square = Rectangle(Point(70,70),Point(200,200))
square.setFill("Lawn Green")
circle = Circle(Point(100,100),50)
circle.setFill("Tomato")
square.draw(win)
circle.draw(win)
...产生一个如下所示的窗口: window opened when program is run
...如何使square
稍后显示在circle
顶部?即circle
被“发送到后面”或square
被“发送到前面”,例如如何在Microsoft Word中操作形状。
我做了一些研究,发现tkinter.Canvas
继承的graphics.GraphWin
类具有tag_raise()
和tag_lower()
方法,它们与我在{{1 }}对象,因此我尝试运行:
tkinter.Widget
...但是什么也没发生(甚至没有引发错误)。我认为这可能是因为win.tag_raise(square)
不是square
的实例,所以我天真地试图更改我的Widget
文件,以便graphics.py
继承自{{1} }:
GraphicsObject
...但是这导致我的前一行Widget
抛出错误:
# Source code imports tkinter as tk
class GraphicsObject(tk.Widget):
任何帮助将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)