如何在 tkinter 中获取矩形的尺寸 - Python
How to get the dimensions of a rectangle in tkinter - Python
我正在尝试使用 tkinter,遇到了一种情况,我需要找到我在 canvas 上绘制的矩形的尺寸(高度和宽度)。但是,当我正常获得它的尺寸时,
button_rectangle.winfo_width()
我收到一条错误消息说 'int' 对象没有属性 'winfo_height'。
我现在不知道我做错了什么,因为当我尝试做 'update' 或 'update_idletasks' 时它会给出同样的错误。
矩形的大小将在整个程序中动态更改,因此我无法手动计算尺寸。
我不知道我做错了什么,任何帮助将不胜感激。
这是我首先定义矩形的地方:
button_rectangle = bg_canvas.create_rectangle(0,264,9999,300,outline="white",fill="white")
Canvas 项不是 windows,因此对它们使用 winfo_*
命令是不合适的。而是使用 canvas 小部件命令访问 canvas 项目属性。这里你要的是bbox
>>> import tkinter as tk
>>> root = tk.Tk()
>>> canvas = tk.Canvas(root)
>>> canvas.pack()
>>> rect = canvas.create_rectangle((10,10,100,100), fill="red")
>>> canvas.bbox(rect)
(9, 9, 101, 101)
对于其他属性,itemconfigure
还是比较有用的。参见 some help on Canvas。
我正在尝试使用 tkinter,遇到了一种情况,我需要找到我在 canvas 上绘制的矩形的尺寸(高度和宽度)。但是,当我正常获得它的尺寸时,
button_rectangle.winfo_width()
我收到一条错误消息说 'int' 对象没有属性 'winfo_height'。 我现在不知道我做错了什么,因为当我尝试做 'update' 或 'update_idletasks' 时它会给出同样的错误。 矩形的大小将在整个程序中动态更改,因此我无法手动计算尺寸。 我不知道我做错了什么,任何帮助将不胜感激。 这是我首先定义矩形的地方:
button_rectangle = bg_canvas.create_rectangle(0,264,9999,300,outline="white",fill="white")
Canvas 项不是 windows,因此对它们使用 winfo_*
命令是不合适的。而是使用 canvas 小部件命令访问 canvas 项目属性。这里你要的是bbox
>>> import tkinter as tk
>>> root = tk.Tk()
>>> canvas = tk.Canvas(root)
>>> canvas.pack()
>>> rect = canvas.create_rectangle((10,10,100,100), fill="red")
>>> canvas.bbox(rect)
(9, 9, 101, 101)
对于其他属性,itemconfigure
还是比较有用的。参见 some help on Canvas。