gpt4 book ai didi

python - Tkinter Canvas 设置为其容器的大小

转载 作者:行者123 更新时间:2023-11-30 22:32:25 34 4
gpt4 key购买 nike

我有一个关于使用 Tkinter Canvas 对象在 Python 中制作 GUI 的问题。

创建框架对象时,您可以为其指定所需的宽度和高度。有没有办法检测其容器的大小并将其用于其宽度和高度?

例如,假设您想要创建一个 Canvas ,它始终占用等于屏幕整个右上角的空间,即使您的窗口要调整大小,或者您要使用它包含在中的框架另一个程序可能有另一个框架占用其他屏幕空间。

以此为例:

import tkinter as tk

root = tk.Tk()
root.geometry("800x480")
container = tk.Frame(root, bg = "yellow")
container.pack(expand = True, fill = "both")
drawArea = tk.Canvas(container, bg = "red")
drawArea.pack()

在上面的代码中, Canvas 不会占据它所在的整个黄色框架。我知道如果我想将其设置为黄色框架的完整大小,我添加 expand = True, fill = "both".pack()陈述。但是如果我只希望它是框架的 2/3 该怎么办?或者框架宽度和高度的一半?可以这样做吗?

也许我在谷歌搜索方面很糟糕,但我似乎无法在网上找到任何相关信息:\

最佳答案

在代码中,当您将 Canvas 打包到框架中时,请将“expand”关键字设置为 True,并将“fill”关键字设置为“both”(或 tkinter.BOTH)。如果您使用的是网格,那么您需要使用此代码(以名称“f”作为框架:

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

然后,当您对 Canvas 进行网格化时,将“sticky”关键字设置为“nsew”(或 tkinter.NSEW)。在上面的代码中,如果您将 0 替换为 Canvas 所在的行号和网格号,以及您希望 Canvas 填充的 GUI 任何部分的权重。这应该有效。

关于python - Tkinter Canvas 设置为其容器的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45465722/

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