繁体   English   中英

如何使用 Tkinter 动态调整窗口大小?

[英]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()

查看我在基础知识上写的一个小概述

  1. 填充水平,垂直或两者都拉伸从属扩展
  2. slaves 应该扩展以消耗它们 master 中的额外空间。

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

在此之后,我们第一次使用geometry manager打包并提供选项fill ,它告诉框架拉伸并使用可选参数expand来消耗额外的空间。 他们一起用窗口调整你的框架的大小,因为它里面没有其他东西。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM