如何阻止 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