如何使用Zelle的graphics.py在窗口中分层GraphicsObjects?

问题描述

使用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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...