gpt4 book ai didi

python - tkinter 在插入对象后使我的框架变形

转载 作者:行者123 更新时间:2023-12-05 05:35:41 25 4
gpt4 key购买 nike

所以我想在一个框架中插入一些对象,但是当我第一次添加一个按钮时,框架不应该放在什么地方。

Before
After

这是代码:

import tkinter as tk

root = tk.Tk()
root.geometry("1200x700")

# Main frames
frame1 = tk.Frame(root, width=1200, height=625)
frame2 = tk.Frame(root, width=1200, bg="black", height=75)

frame1.grid(row=1, column=1)
frame2.grid(row=2, column=1)

# Secondary frames
frame1browser = tk.Frame(frame1, height=625, width=850, bg="grey")
frame1a = tk.Frame(frame1,height=625, width=(1200-850))

frame1browser.grid(row=1, column=1)
frame1a.grid(row=1, column=2)

# Last frames
frame1aa = tk.Frame(frame1a, width=(1200-850),height=525, bg="green")
frame1ab = tk.Frame(frame1a, width=(1200-850),height=100, bg="yellow")

frame1aa.grid(row=1, column=1)
frame1ab.grid(row=2, column=1, sticky="nswe")

# Elements that are not frames
Button1 = tk.Button(frame1ab, text="ur mother")
Button1.grid(column=1, row=1)

root.mainloop()

最佳答案

默认情况下,如果其中有小部件,框架会忽略显式指定的宽度/高度。 AFAIK,它找到并使用适合所有小部件所需的最小尺寸,还适应额外的属性,如 sticky , expand等等。

要覆盖此行为,您必须使用 <grid/pack>_propagate(False)取决于你是否使用 packgrid在框架内的项目上。现在框架将根据您指定的大小增大/缩小。

frame1ab.grid_propagate(False)

关于python - tkinter 在插入对象后使我的框架变形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73447039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com