![](/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.