'''Tkinter教程之Canvas篇(3)'''
'''16.移動item'''
# -*- coding: cp936 -*-
# 指定
# y在偏移量
from Tkinter import *
root = Tk()
# 創建一個Canvas,設定其背景色為白色
前後的不同
cv = Canvas(root,bg = 'white')
# 移動rt1
rt1 = cv.create_rectangle( 10,10,110,110, tags = ('r1','r2','r3')) cv.create_rectangle( 10,10,110,110, tags = ('r1','r2','r3'))
# move可以指定x,y在相對偏移量,可以刪除負值
''7.
# -*- coding: cp936 -*-
# delete刪除給定的item
cv.move(rt1,20,-10) cv.pack() root.mainloop()
from Tkinter import * root = Tk() cv = Canvas(root,bg = 'white')
cv .delete(rt1)
# 使用tag刪除r2
rt1 = cv.create_rectangle( 10,10,110,110, tags = ('r1','r2','r3')) r2 = cv.create_rectangle( 20,20,110,110, tags = ('s1','s2','s3'))
'''18.縮放item''' coding: cp936 -*-
# scale縮放item,計算公式:(coords - offset)*scale + offset
cv.delete('s1') cv.pack() root.mainloop()
from Tkinter import * root = Tk() cv = Canvas(root,bg = 'white')
'''19.綁定
# -*- coding: cp936 -*-
# 使用tag_bind來綁定item與事件
rt1 = cv.create_rectangle( 10,10,110,110, tags = ('r1','r2','r3'))
cv.scale(rt1,0,0,1,2) cv.pack() root.mainloop()
from Tkinter import * root = Tk()
# -*- coding: cp936 -*-
# 使用tag_bind來綁定item與事件,與參考上測試結果不一致。
cv = Canvas(root,bg = 'white')
rt1 = cv.create_rectangle( 10,10,110,110, width = 8, tags = ('r1','r2','r3')) def printRect(event): print 'rectangle'
cv.tag_bind('r1','<Button-1>',printRect) cv.pack() root.mainloop()
from Tkinter import * root = Tk()# 只有點擊到矩形的邊框時才會觸發事件,不使用add參數,默認就是向這個item添加一個處理函數,它不會替換原來的事件函數,範例結果:既響應左鍵又響應右鍵
'''21.綁定新的item與現有的tags'''
# -*- coding: cp936 -*-
# 使用tag_bind來綁定item與事件,測試結果與參考上的說法不一致
cv = Canvas(root,bg = 'white')
cv )
# 建立三個rectangle
rt1 = cv.create_rectangle( 10,10,110,110, width = 8, tags = ('r1','r2','r3')) def printRect(event): print 'rectangle' def printLine(event): print 'line'
# 建立一個line,並將其tags設定為'r1'
# 將事件與tag('r1')綁定後,建立新的item並指定已綁定事件的tag,新創建的item同樣也與事件綁定,這個與參考上的說法也不一致
以上就是Tkinter教程之Canvas篇(3)的內容,更多相關內容請關注PHP中文網(www.php.cn)!