tk控件place()布局窗口自适应
时间: 2023-06-29 20:06:24 浏览: 229
可以使用`place_configure`方法设置`tkinter`控件的位置和大小,以实现窗口自适应。具体来说,可以在窗口大小改变时,获取窗口的宽度和高度,然后根据比例计算控件的新位置和大小。
下面是一个示例代码,其中一个`Label`控件使用`place`布局,并且会随着窗口大小的改变而自适应:
```python
import tkinter as tk
class MyApp(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.label = tk.Label(self.master, text="Hello, World!", bg="gray")
self.label.place(relx=0.5, rely=0.5, anchor="center")
self.pack()
self.bind("<Configure>", self.on_resize)
def on_resize(self, event):
w = event.width
h = event.height
self.label.place_configure(relx=0.5, rely=0.5, anchor="center", width=w*0.8, height=h*0.8)
if __name__ == '__main__':
root = tk.Tk()
app = MyApp(root)
app.mainloop()
```
在这个示例中,`Label`控件的位置和大小都是相对于窗口大小的比例值来确定的,通过在`on_resize`方法中计算新的比例值,然后调用`place_configure`方法更新控件的位置和大小,从而实现了窗口自适应布局。
阅读全文