當使用Tkinter的此函數調用:Tkinter的create_rectangle()固定大小
canvas.create_rectangle(canvas.create_rectangle(x0, y0, x0+xsize, y0+ysize,
outline="black", width=outline_width)
我想要一個rectange我可以預測的大小。問題是,根據outline_width
,整個矩形大小會有所不同。
例如,如果我保持不變
(xsize, ysize) = (20,20)
,同時改變outline_width
,我得到了奇怪的尺寸。例如,outline_width=1
給出了21px的正方形,而使用outline_width=4
給出了24px的正方形。 對於我來說,這是一個相當棘手的問題,因爲如果我無法預測矩形的大小(即包含輪廓的大小),我的整個圖形都會受到影響。
它看起來像矩形的總x寬度例如將由(xsize+outline_width
)確定。但是接下來的另一個問題是,rectange的左上角位置也會因輪廓寬度而異。
任何解決方案可以準確確定矩形在左上角的位置,並確定最終尺寸?
編輯:包括一張圖片。注意矩形在窗口的兩個完全不同的位置(在X軸上)「開始」,畫出一條紅線供參考。
我真的想了左上角保持不變,無論我的outline_width
價值。或者至少能夠知道它會向右移動多少,所以我可以改變座標以補償它。
感謝
「rectange的左上角位置也因輪廓寬度而異」它是如何變化的? – Goyo
不能準確地告訴你它是如何變化的,因爲那正是我的問題所有關於(我不知道),但它顯然是。例如,如果我使用outline_width爲3,那麼矩形「開始」x方向上的座標爲9,而如果我使用10的outline_width,則「開始」爲5.似乎沒有多大意義我(相對於窗口上的一個真正的固定點來衡量)。 – Yannick
這很有趣 - 我認爲我不認爲我會將這個輪廓寬度稱爲邊界寬度,因爲它似乎是筆劃寬度的一半在邊界內,而一半在外部。如果你想要一個更可預測的行爲,你可能不得不推出自己的... –