我正在使用此代码来中心我的屏幕,如this帖子和我的question所示,但令我惊讶的是,它并没有完全将窗口居中。它把它放在右下角而不是中心。为什么是这样?这个窗口为什么不居中?
top1=Toplevel(root)
w = top1.winfo_screenwidth()
h = top1.winfo_screenheight()
topsize = tuple(int(_) for _ in top1.geometry().split('+')[0].split('x'))
x = w/2 - topsize[0]/2
y = h/2 - topsize[1]/2
top1.geometry("+%d+%d" % (topsize[0]+x, topsize[1]+y))
由史蒂芬萨默斯
import Tkinter as tk
def center_window(win):
w = win.winfo_screenwidth()
h = win.winfo_screenheight()
x = w/2 - win.winfo_width()/1-150
y = h/2 - win.winfo_height()/1-200
win.geometry("+%d+%d" % (x, y))
root = tk.Tk()
top1 = tk.Toplevel(root)
top1.title('TopLevel Window 1')
top1.minsize(300, 300)
b = tk.Label(top1, text='Here is a Label')
b.pack()
l = tk.Button(top1, text='Click Me')
l.pack()
top1.after(1, lambda: center_window(top1))
root.mainloop()
不幸的是,这个解决方案不起作用。它没有给出任何错误,但将窗口放置在与之前相同的位置。 –
我正在使用Python 3,并且正好运行该代码,使屏幕上的top1窗口居中。 –
我在调用命令之前是否需要放置小部件? –