2016-10-04 70 views
-1

我正在试验tkinter,并遇到了一种情况,我需要找到我在画布上绘制的矩形的尺寸(高度和宽度) 。然而,当我得到它的尺寸通常是具有如何获得tkinter中矩形的尺寸 - Python

button_rectangle.winfo_width()

我得到一个错误说“诠释”对象有没有属性“winfo_height”。 我现在不在做我做错了什么,因为它在尝试执行'update'或'update_idletasks'时会出现同样的错误。 矩形的大小将在整个程序中动态更改,因此我无法手动计算尺寸。 我不知道我做错了什么,任何帮助将不胜感激。 这里是我第一次定义的矩形:

button_rectangle = bg_canvas.create_rectangle(0,264,9999,300,outline="white",fill="white") 

回答

1

帆布项目都没有窗户,因此不宜对他们使用winfo_*命令。而是使用画布窗口小部件命令来访问画布项目属性。在这里,你想要的是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