我正在使用此代碼來中心我的屏幕,如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窗口居中。 –
我在調用命令之前是否需要放置小部件? –