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