gpt4 book ai didi

python-3.x - tkinter Canvas 窗口大小

转载 作者:行者123 更新时间:2023-12-01 09:17:22 25 4
gpt4 key购买 nike

我需要知道 Canvas 何时调整大小(例如,当主框架最大化时)新的 Canvas 窗口大小。
不幸的是,如果我尝试 self.canvas['width'] ,在我看来,我总是得到初始化它时的宽度,而不是当前宽度。
如何获取当前的 Canvas 窗口尺寸?

最佳答案

当您检索 self.canvas['width'] ,您要求 tkinter 给您配置的小部件宽度,而不是实际宽度。对于实际宽度,您可以使用 .winfo_width() .

如果您想知道何时调整 Canvas 大小,可以添加绑定(bind)到 <Configure>小部件上的事件。传递给绑定(bind)的事件对象具有 width属性也具有小部件的实际宽度。

这是一个例子:

import tkinter as tk

root = tk.Tk()
canvas = tk.Canvas(root, width=200, height=200, background="bisque")
canvas.pack(side="bottom", fill="both", expand=True)

canvas.create_text(10, 30, anchor="sw", tags=["event"])
canvas.create_text(10, 30, anchor="nw", tags=["cget"])

def show_width(event):
canvas.itemconfigure("event", text="event.width: %s" % event.width)
canvas.itemconfigure("cget", text="winfo_width: %s" % event.widget.winfo_width())

canvas.bind("<Configure>", show_width)

root.mainloop()

关于python-3.x - tkinter Canvas 窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40780634/

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