如何使用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()

看看我写的一个关于基础知识的小概述。

  1. fill水平、垂直或同时展开从属对象
  2. 奴隶应该被扩展以消耗主人的额外空间

因此,上面的代码所做的是以其自然大小创建一个frame,这意味着它将自己缩小到排列子级所需的最小空间。

在此之后,我们首次使用geometry manager,并提供填充选项,这告诉框架拉伸并使用可选参数展开以消耗额外空间。它们一起调整你的框架和窗口的大小,因为里面没有其他东西。

之后,我们创建一个Entry,并再次使用方法pack将其与该几何管理器进行排列。我们再次使用可选参数填充并给出值'x',这告诉几何体管理器垂直拉伸从项/条目

因此,如果框架展开,入口将垂直拉伸。

至少我们创建了一个Button,并使用已知的关键字,让它随框架调整大小。

最新更新