2016-10-04 66 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