[英]tkinter not drawing shapes with negative points
這可能是一個非常愚蠢的問題,但我在使用 tkinter 時遇到了一些麻煩。 我對使用 tkinter 很陌生,想在空閑時間學習一些我沒有太多的東西。 我已經設置了畫布和所有東西,但當我嘗試敢於用負點繪制一個矩形時,我已經把它放在泡菜里了。 我不知道為什么,它就是不畫任何東西。
我想做的是在彼此下方繪制一個矩形。
我附上了下面的代碼。 它繪制了用綠色填充的矩形,但是當我嘗試繪制用紅色填充的矩形時,什么也沒有出現。
非常感謝您的幫助。
from tkinter import *
mainWindow = Tk()
drawingCanvas = Canvas(mainWindow, width=300, height=300)
drawingCanvas.pack()
drawingCanvas.create_rectangle(50, 25, 150, 75, fill="green")
drawingCanvas.create_rectangle(50, -200, 150, -100, fill="red")
mainloop()
我嘗試使用在線繪圖儀演示來繪制這些點,以檢查這些點是否正確。 是的,但是當我在 tkinter 中繪制它時,帶有負點的矩形丟失/沒有被繪制。
帶有負點的矩形並沒有丟失,而是淹沒在屏幕之外。 tkinter 畫布從屏幕左上角的 0/0 開始,因此負數將繪制在窗口外。
改變:
drawingCanvas.create_rectangle(50, -200, 150, -100, fill="red")
到:
drawingCanvas.create_rectangle(50, 200, 150, 100, fill="red")
畫布的左上角默認為 0,0。 由於您的對象被繪制在該坐標之上,因此它們是不可見的。
您可以在創建對象后調整scrollregion
,畫布將進行調整,以便最左上角的對象可見。 您可以使用以下語句執行此操作,該語句應該在您在畫布上創建項目之后出現:
drawingCanvas.configure(scrollregion=drawingCanvas.bbox("all"))
drawingCanvas.bbox("all")
返回畫布上所有項目的邊界框。 然后將其傳遞到configure
方法以更改畫布的scrollregion
屬性。
這適用於這種特定情況,因為您繪制的所有內容都適合窗口。 如果您將項目繪制到右側或下方很遠的地方,它們將不可見。 這是一種調整畫布可視部分的便捷方法,作為副作用,它會調整左上角顯示的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.