Zelle 和 Graphics.py - 如何让图形 window 始终位于顶部?

Zelle and Graphics.py - how can I keep the graphic window always on top?

使用 graphics.py,我想知道是否有办法让 graphics.py canvas/window 始终保持在顶部。使用 pycharm 时,如果输入位于 pycharm 中 - 图形将隐藏在应用程序后面。我在 turtle 中找到了一种方法,但似乎无法将其合并到 graphic.py

这是乌龟:

rootwindow=turtle.getcanvas().winfo_toplevel()
rootwindow.call('wm','attributes','.','-topmost','1')

关于如何在 Zelle 中完成此操作的任何想法?

这是一个简单的例子,当在 pycharm 进入控制台时,图形 window 移到 pycharm 后面而不是留在顶部

from graphics import *

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

def cir(radius):
    cir = Circle(Point(30,30), radius)
    cir.setFill("red")
    cir.draw(win)
    return

radius=int(input("what size of circle?"))
cir(radius)
win.getMouse()
win.close()

您可以使用与 turtle 模块基本相同的方式来完成它,稍微 tricky/hacky 的部分是确定根 window 是什么。至少有几种方法可以做到这一点,但我认为在 tkinter).

中使用通用小部件方法 nametowidget() was the cleanest (note: '.' is always the root's window name
from graphics import *


win = GraphWin("MyWindow", 200, 200)
rootwindow = win.nametowidget('.')
rootwindow.call('wm', 'attributes', '.', '-topmost', '1')

def cir(radius):
    cir = Circle(Point(30,30), radius)
    cir.setFill("red")
    cir.draw(win)
    return

radius = int(input("what size of circle?"))
cir(radius)
win.getMouse()
win.close()

推荐

在我看来,您最好学习如何使用 graphics 模块的 Entry 对象从用户那里获取键盘数据,因为那样您就不需要做任何事情像这样hacky。