gpt4 book ai didi

python - 具有可选择感兴趣区域、负坐标的 Canvas

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:37 27 4
gpt4 key购买 nike

我想在 Canvas 上绘制填充多边形(正方形和六边形),然后能够在感兴趣的区域放大或缩小 Canvas 。

我基于 Tkinter 起草了以下演示程序:

#!/usr/bin/python
from Tkinter import *

def DrawSquare(canvas, orgx, orgy, size, filler):
orgx=orgx*size
orgy=orgy*size
canvas.create_polygon(orgx, orgy, orgx+size, orgy, orgx+size, orgy+size, orgx, orgy+size, orgx, orgy, outline="black", fill=filler)

def main():
w = Frame()
w.pack(expand=YES, fill=BOTH)
canvas = Canvas()
canvas.pack(expand=YES, fill=BOTH)

for x in range(-30,10):
for y in range(-30,10):
DrawSquare(canvas, x,y,20,"white")

mainloop()

main()

它在 Canvas 上绘制了许多正方形,但是,至少使用 Tkinter Canvas 的默认选项,我看不到负象限中的正方形。

那么问题是:

  • 能否使 Tkinter.Canvas 滑动和缩放(最好使用内置函数)?
  • 是否有我可以过渡到的更合适的替代框架?

最佳答案

默认情况下,左上角位于 0,0。如果您想查看上方或左侧的某些内容,您只需滚动到 Canvas 的该部分即可。为此,您应该首先设置 scrollregion 属性,以便 Canvas 知道您希望能够看到其(伪)无限空间的哪一部分。

绘制完所有对象后添加以下代码行:

canvas.configure(scrollregion=canvas.bbox("all"))

您可以通过调用scale来缩放 Canvas 。方法,给它一个因子来缩放 X 和 Y 方向上的所有内容。

关于python - 具有可选择感兴趣区域、负坐标的 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15909272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com