![](/img/trans.png)
[英]How to get tkinter canvas to dynamically resize to window width?
[英]How to dynamically resize window with Tkinter?
root= tk.Tk()
root.title('Quick Googling')
canvas1 = tk.Canvas(root, width = 400, height = 300)
canvas1.pack()
entry1 = tk.Entry (root)
canvas1.create_window(200, 140, window=entry1)
canvas1.config(background="#8FB1CC"
button1 = tk.Button(text='Search Google', bg = "blue")
canvas1.create_window(200, 180, window=button1)
我希望窗口的颜色以及条目和按钮在窗口大小更改时利用所有空间。
如果您使用框架,tkinter 的几何管理器将为您完成这项工作:
import tkinter as tk
root= tk.Tk()
root.title('Quick Googling')
myframe = tk.Frame(root)
myframe.pack(fill='both',expand=True)
entry1 = tk.Entry (myframe,background="#8FB1CC")
entry1.pack(fill='x')
button1 = tk.Button(myframe,text='Search Google', bg = "blue")
button1.pack(fill='both',expand=1)
root.mainloop()
查看我在基础知识上写的一个小概述。
- 填充水平,垂直或两者都拉伸从属扩展
- slaves 应该扩展以消耗它们 master 中的额外空间。
所以上面的代码所做的是创建一个具有自然大小的frame
,这意味着它将自己缩小到排列孩子所需的最小空间。
在此之后,我们第一次使用geometry manager
打包并提供选项fill ,它告诉框架拉伸并使用可选参数expand来消耗额外的空间。 他们一起用窗口调整你的框架的大小,因为它里面没有其他东西。
之后,我们创建一个Entry
并再次使用方法pack
将其与此几何管理器进行排列。 我们再次使用可选参数fill并给出值'x' ,它告诉几何管理器垂直拉伸从属/条目。
因此,如果框架展开,则入口会垂直拉伸。
至少我们创建一个Button
并使用已知关键字,让它随框架调整大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.