如何阻止 Tkinter Frame 縮小以適應其內容?
預設情況下,Tkinter 框架中所有部件的大小屬性都設定為部件本身的大小。框架容器會自動縮小或擴充套件以適應其內部的部件。要停止允許框架縮小或擴充套件部件,我們可以使用 **propagate(布林值)** 方法與任何 pack 或 grid 幾何管理器一起使用。此方法阻止框架傳播部件的大小調整。
我們可以透過兩種一般方法定義 propagate 屬性:
**pack_propagate (False)** – 如果框架使用 Pack 幾何管理器定義。
**grid_propagate (False)** – 如果框架使用 Grid 幾何管理器定義。
示例
在此示例中,我們將在一個框架內建立兩個 Entry 部件,不允許部件縮小或適應。
#Import the required Libraries
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
#Create an instance of Tkinter frame
win = Tk()
#Set the geometry of tkinter frame
win.geometry("750x250")
#Define a function to show a message
def submit():
messagebox.showinfo("Success", "Submitted Successfully!")
#Creates top frame
frame1 = LabelFrame(win, width= 400, height= 180, bd=5)
frame1.pack()
#Stop the frame from propagating the widget to be shrink or fit
frame1.pack_propagate(False)
#Create an Entry widget in Frame1
entry1 = ttk.Entry(frame1, width= 40)
entry1.insert(INSERT,"Enter Your Name")
entry1.pack(pady=30)
entry2= ttk.Entry(frame1, width= 40)
entry2.insert(INSERT, "Enter Your Email")
entry2.pack()
#Creates bottom frame for button
frame2 = LabelFrame(win, width= 150, height=100)
frame2.pack()
#Create a Button to enable frame
button1 = ttk.Button(frame2, text="Submit", command= submit)
button1.pack()
win.mainloop()輸出
執行以上程式碼以顯示一個包含兩個框架的視窗,其中定義了部件。
在給定的輸出中,視窗包含一個框架,其中包含 Entry 部件,這些部件不會縮小其內部定義的部件。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP