簡體   English   中英

tkinter 不繪制帶有負點的形狀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM