Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter父帧似乎在按钮内部收缩_Python_Tkinter_Tkinter Layout - Fatal编程技术网

Python Tkinter父帧似乎在按钮内部收缩

Python Tkinter父帧似乎在按钮内部收缩,python,tkinter,tkinter-layout,Python,Tkinter,Tkinter Layout,我正在努力在一个框架内显示一个按钮(其中将包含其他按钮)。我将把这个框架放入的根窗口必须被组织成一个网格(将会有更多的小部件),但是这个框架必须用pack()组织。我的目标是使框架填充指定给它的网格单元,并在此框架内显示按钮 然而,当我启动这个程序时,框架似乎消失了,或者在按钮内部收缩了 我如何使框架在按钮位于内部的情况下保持其原始尺寸 from tkinter import * root = Tk() root.geometry('300x300') frame=Frame(root, b

我正在努力在一个框架内显示一个按钮(其中将包含其他按钮)。我将把这个框架放入的根窗口必须被组织成一个网格(将会有更多的小部件),但是这个框架必须用pack()组织。我的目标是使框架填充指定给它的网格单元,并在此框架内显示按钮

然而,当我启动这个程序时,框架似乎消失了,或者在按钮内部收缩了

我如何使框架在按钮位于内部的情况下保持其原始尺寸

from tkinter import *

root = Tk()
root.geometry('300x300')

frame=Frame(root, bg="green", width=150, height=150)
frame.grid(row=0, column=0)

Breset=Button(frame,text='Reset', bg='pink')
Breset.pack()

root.mainloop()
我如何使框架在按钮位于内部的情况下保持其原始尺寸

from tkinter import *

root = Tk()
root.geometry('300x300')

frame=Frame(root, bg="green", width=150, height=150)
frame.grid(row=0, column=0)

Breset=Button(frame,text='Reset', bg='pink')
Breset.pack()

root.mainloop()
你几乎永远都不想那样做。如果你把更多的小部件放进去,框架自然会选择合适的大小来适应所有的东西

如果您想让框架填充窗口,可以使用各种
grid
选项。不过,如果希望框架始终填充整个窗口,则使用
pack
比使用
grid
更容易

带包装的溶液 要获得填充根窗口的
frame
,只需使用
fill
expand
选项和
pack

frame.pack(fill="both", expand=True)
网格求解 使用
网格
还需要几个步骤。首先,您需要使用
sticky
选项,以便框架填充分配给它的空间。接下来,您需要告诉网格给框架分配未分配的空间

root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
frame.grid(row=0, column=0, sticky="nsew")
关闭帧的自动调整大小 您最初要求的是所谓的几何体传播-这是子对象的大小向上传播到父对象的特性。您可以使用
grid\u propagate
pack\u propagate
将其关闭,具体取决于您对子窗口小部件使用的内容。在您的情况下,您正在为框架内的按钮使用
pack

frame.pack_propagate(False)
这几乎总是三种解决方案中最糟糕的一种。几何体管理器
pack
grid
的全部要点是让tkinter完成所有决定小部件大小的工作