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)
...
我有这个非常基本的代码
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)
...