2013-04-09 88 views
1

我想在畫布上繪製填充的多邊形(正方形和六邊形),之後可以放大或縮小感興趣區域的畫布。具有可選感興趣區域的畫布,負座標

我已經起草了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() 

它吸引了許多平方到畫布上,但是,至少與Tkinter的畫布的默認選項,我不能看到負象限中的正方形。然後

的問題是:

  • 能Tkinter.Canvas進行滑動和縮放(優選使用內置函數)?
  • 有沒有其他的框架可以過渡到哪個更適合?

回答

1

默認情況下,左上角爲0,0。如果您想看到上面或左側的內容,只需滾動到畫布的該部分即可。爲了做到這一點,您應該首先設置scrollregion屬性,以便畫布知道您想要看到的(僞)無限空間的哪一部分。通過調用scale方法,賦予其規模在X和Y方向的一切因素

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

可以放大畫布:

添加下面的代碼畫線的所有對象後。

相關問題