簡體   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