tkinter windows 的 auto-placement 可以关掉吗?

Can the auto-placement of tkinter windows be turned off?

我有这个非常基本的代码

from tkinter import *
class GUI(Tk):
    def __init__(self):
        super().__init__()
        self.geometry('600x400')
        Button(self, text="Show new window",          command=self.show_window).pack()

    def show_window(self):
        smallwin = display()
   
class display(Toplevel):
    def __init__(self):
        super().__init__()
        self.geometry('300x300+30+30')
        self.attributes('-topmost',True)

root = GUI()
root.mainloop()

` 单击该按钮时,会出现 child window。当你再次按下它时,第二个 child window 出现等等,但是每个新的 window 都在右边,并且比最后一个更远。

我想知道是否可以关闭此自动行为?

您可以只设置 window 的位置。然后所有 windows 将打开这个确切位置。

例如

root.geometry('250x150+0+0')

更详细的解决方案在这里描述:

How to specify where a Tkinter window opens?

如果您为每个 window 明确设置几何形状,它们就会去您告诉它们去的地方。

您似乎在设置一个几何图形,但您并没有使用它。如果将该值传递给 geometry 方法,window 将转到该确切位置。

class display(Toplevel):
    def __init__(self):
        super().__init__()
        self.defaultgeometry='300x300+30+30'
        self.wm_geometry(self.defaultgeometry)
        ...