如何阻止 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 部件,这些部件不会缩小其内部定义的部件。
广告