如何创建具有固定大小的 Tkinter 窗口
默认情况下,即使你在初始化窗口实例时指定了宽度和高度,Tkinter 窗口的大小也可调整。
import tkinter as tk
app = tk.Tk()
app.geometry('200x200')
app.mainloop()
你可以拖动上述代码创建的窗口以获取不同的窗口大小。应该使用 resizable
函数来限制宽度和高度是否可变。
resizable(self, width=None, height=None)
-设置窗口管理器是否可以调整 width
或 height
。这两个值都是布尔类型值。import tkinter as tk
app = tk.Tk()
app.geometry('200x200')
app.resizable(width=0, height=0)
app.mainloop()
app.resizable(width=0, height=0)
设置宽度和高度都不能调整。
将框架设置为固定大小
窗口内部的框架与窗口有点类似,即使定义了框架的宽度和高度,它也会自动调整自身大小。
import tkinter as tk
app = tk.Tk()
app.geometry('200x200')
app.resizable(0, 0)
backFrame = tk.Frame(master=app,
width=200,
height=200,
bg='blue').pack()
button1 = tk.Button(master=backFrame,
text='Button 1',
bg='blue',
fg='red').pack()
button2 = tk.Button(master=backFrame,
text='Button 2',
bg='blue',
fg='green').pack()
button3 = tk.Label(master=backFrame,
text='Button 3',
bg='red',
fg='blue').pack()
app.mainloop()
我们期望的 GUI 如下所示,
但是执行上面的代码后我们得到的是
框架 backFrame
会自动调整大小以与其附着的控件来匹配。换句话说,内部的控件 backFrame
控制其父框架的大小。
你可以通过设置 pack_propagate(0)
来禁用框架自动调整来适应其控件的大小。
propagate(self, flag=['_noarg_'])
-设置或获取几何信息的 propagation
状态。布尔参数指定从属控件的几何信息是否确定此窗口控件的大小。如果没有给出参数,将返回当前设置。冻结窗口框架大小的正确代码是,
import tkinter as tk
app = tk.Tk()
app.geometry('200x200')
app.resizable(0, 0)
backFrame = tk.Frame(master=app,
width=200,
height=200,
bg='blue')
backFrame.pack()
backFrame.propagate(0)
button1 = tk.Button(master=backFrame,
text='Button 1',
bg='blue',
fg='red').pack()
button2 = tk.Button(master=backFrame,
text='Button 2',
bg='blue',
fg='green').pack()
button3 = tk.Label(master=backFrame,
text='Button 3',
bg='red',
fg='blue').pack()
app.mainloop()
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。