可以使用以下方法设置窗口的大小(无论是Tk
实例还是Toplevel
实例)geometry
:
# identical to root.geometry('256x512')
root.geometry('{}x{}'.format(256, 512))
或者:
# identical to window.geometry('512x256')
window.geometry('{}x{}'.format(512, 256))
此外,使用几何方法还可以确定窗口的左上角:
window.geometry('+{}+{}'.format(16, 32))
或者可能同时:
#identical to window.geometry('512x256+16+32')
window.geometry('{}x{}+{}+{}'.format(512, 256, 16, 32))
更一般地说,可以使用winfo_toplevel
它来轻松地从其子级设置窗口的大小:
widget.winfo_toplevel().geometry('{}x{}+{}+{}'.format(512, 256, 16, 32))
例子
这是一个示例,它通过子小部件的引用设置窗口的大小和放置坐标:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
def on_button_press(widget):
width = 512
height = 256
x = 16
y = 32
widget.winfo_toplevel().geometry('{}x{}+{}+{}'.format(width, height, x, y))
if __name__ == '__main__':
root = tk.Tk()
window = tk.Toplevel(root)
button = tk.Button(window, text="Resize & Place")
#the line below is related to calling a method when a button is pressed
button['command'] = lambda w=button: on_button_press(w)
button.pack()
tk.mainloop()