gpt4 book ai didi

Python tkinter - 当用户展开窗口时如何调整小部件的大小

转载 作者:行者123 更新时间:2023-12-01 02:28:16 25 4
gpt4 key购买 nike

我尝试学习 python 和 Tkinter,并且必须开发一个小型用户界面。基本上,屏幕上有 4 个按钮,我放置了一个 LabelFrame 将所有这些按钮放在同一个标​​签上。

from tkinter import *

root = Tk()
root.title('Example')

content=Frame(root)
myButtons=LabelFrame(content, text="My Buttons", padx=7, pady=7)

one = Button(myButtons, text="Button 1")
two = Button(myButtons, text="Button 2")
three = Button(myButtons, text="Button 3")
four = Button(myButtons, text="Button 4")

content.grid(column=0, row=0)
myButtons.grid(column=0, row=0)

one.grid(column=0, row=0)
two.grid(column=1, row=0)
three.grid(column=0, row=1)
four.grid(column=1, row=1)

root.mainloop()

picture

我希望按钮和标签在用户展开窗口时展开。

我尝试添加

root.grid_columnconfigure(0,weight=1)
root.grid_columnconfigure(1,weight=1)
root.grid_rowconfigure(0,weight=1)
root.grid_rowconfigure(1,weight=1)

但它不起作用......

最佳答案

正如 Bryan 在评论中提到的,每个父窗口小部件对象都需要管理其子几何图形。您尝试的解决方案不起作用,因为 grid_rowconfiguregrid_columnconfigure 完成的几何管理会影响小部件的子项,但不会影响任何孙子项。您的 root 在其 1x1 网格中只有 1 个小部件对象。这意味着如果该网格索引一开始就不存在,root 的配置方法基本上不会执行任何操作。

因为您的有一个1x1网格,其中有内容。然后,您的 content 有另一个 1x1 网格,其中包含 myButtons。最后它有一个 2x2 网格,其中包含按钮:

当您调整root大小时如果您希望内容也调整大小,您需要:

content.grid_configure(sticky="nsew")
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)

但这仅允许 content 框架调整大小,但不一定允许调整其中的内容。如果您想用它调整 myButtons 的大小,您需要:

myButtons.grid_configure(sticky="nsew")
content.grid_rowconfigure(0, weight=1)
content.grid_columnconfigure(0, weight=1)

但同样,这只允许您在 myButtons LabelFrame 的父级 content 调整大小时调整其大小。它仍然不允许 myButtons 中的子级; 来调整大小。您最终需要:

one.grid_configure(sticky="nsew")
two.grid_configure(sticky="nsew")
three.grid_configure(sticky="nsew")
four.grid_configure(sticky="nsew")

myButtons.grid_rowconfigure(0, weight=1)
myButtons.grid_rowconfigure(1, weight=1)
myButtons.grid_columnconfigure(0, weight=1)
myButtons.grid_columnconfigure(1, weight=1)

关于Python tkinter - 当用户展开窗口时如何调整小部件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47127875/

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