>  기사  >  웹 프론트엔드  >  Tkinter 튜토리얼 캔버스 장 (3)

Tkinter 튜토리얼 캔버스 장 (3)

黄舟
黄舟원래의
2017-01-17 10:15:051412검색


'''Tkinter Tutorial Canvas Chapter(3)'''


'''16. 항목 이동'''


# - * - 코딩: cp936 -*-


# move는 오프셋


에서 x, y를 지정합니다 from Tkinter import *


root = Tk( )


# 캔버스를 만들고 배경색을 흰색으로 설정


cv = Canvas(root,bg = 'white')

# 두 개의 동일한 직사각형을 만들고 움직임 비교 이전과 차이점 after


rt1 = cv.create_rectangle(
10,10,110,110,
tags = ('r1','r2','r3'))
cv.create_rectangle(
10,10,110,110,
tags = ('r1','r2','r3'))


# Move rt1


cv.move(rt1,20,-10)
cv.pack()
root.mainloop()


# move는 x를 지정할 수 있고 y는 상대 오프셋이며 음수일 수 있습니다


'''17. 항목 삭제''


# -*- 코딩: cp936 -*-


# delete는 해당 항목을 삭제합니다


from Tkinter import *
root = Tk()
cv = Canvas(root,bg = 'white')


# 두 개의 직사각형을 만듭니다


rt1 = cv.create_rectangle(
10,10,110,110,
tags = ('r1','r2','r3'))
r2 = cv.create_rectangle(
20,20,110,110,
tags = ('s1','s2','s3'))

# id를 사용하여 rt1 삭제


cv.delete(rt1)


# 태그를 사용하여 r2 삭제

cv.delete('s1')
cv.pack()
root.mainloop()


# 항목(ID/태그)을 삭제하는 두 가지 방법


'''18. 항목 확대''


# -*- 코딩: cp936 -*-


# 스케일 스케일링 항목, 계산식: (좌표 - 오프셋)*스케일 + 오프셋


from Tkinter import *
root = Tk()
cv = Canvas(root,bg = 'white')

# 직사각형 두 개 생성


rt1 = cv.create_rectangle(
10,10,110,110,
tags = ('r1','r2','r3'))


# y좌표를 원래 2자리로 확대해도 x좌표 값은 그대로 유지됩니다


cv.scale(rt1,0,0,1,2)
cv.pack()
root.mainloop()


# scale 매개변수는 (self,xoffset,yoffset,xscale,yscale)


'''19'''


# -*- 코딩: cp936 -*-


# tag_bind를 사용하여 항목과 이벤트 바인딩

from Tkinter import *
root = Tk()


# 캔버스 만들기, 배경 설정 색상을 흰색으로


cv = Canvas(root,bg = 'white')

# 직사각형 3개 만들기


rt1 = cv.create_rectangle(
10,10,110,110,
width = 8,
tags = ('r1','r2','r3'))
def printRect(event):
print 'rectangle'


# 아이템 및 이벤트 바인딩


cv.tag_bind(&#39;r1&#39;,&#39;<Button-1>&#39;,printRect)
cv.pack()
root.mainloop()


# 직사각형 테두리를 클릭해야만 이벤트가 발생합니다


''' 20. 바인딩 추가 정의된 이벤트' ''


# -*- 코딩: cp936 -*-


# tag_bind를 사용하여 항목과 이벤트를 바인딩했는데, 이는 참조의 테스트 결과와 일치하지 않습니다.


from Tkinter import *
root = Tk()


# 캔버스를 만들고 배경색을 흰색으로 설정


cv = Canvas(root,bg = &#39;white&#39;)




# 세 개의 직사각형 생성


rt1 = cv.create_rectangle(
10,10,110,110,
width = 8,
tags = (&#39;r1&#39;,&#39;r2&#39;,&#39;r3&#39;))
def printRect(event):
print &#39;rectangle&#39;
def printLine(event):
print 'line'


# 아이템 바인딩 및 왼쪽 클릭 이벤트


cv.tag_bind(&#39;r1&#39;,&#39;<Button-1>&#39;,printRect)

# 아이템 바인딩 및 우클릭 이벤트


cv.tag_bind(&#39;r1&#39;,&#39;<Button-3>&#39;,printLine)
cv.pack()
root.mainloop()

# 직사각형 테두리를 클릭할 때만 이벤트가 발생합니다. 추가 매개변수는 기본적으로 사용되지 않습니다. 이 항목에 추가하는 것입니다. 원래 이벤트 기능을 대체하지 않습니다. 예시 결과: 왼쪽 및 오른쪽 키 모두에 응답합니다.


''' 21. 새 항목을 기존 태그에 바인딩합니다. ''


# -*- 코딩: cp936 -*-


# tag_bind를 사용하여 항목과 이벤트를 바인딩했습니다. 테스트 결과가 참조와 일치하지 않습니다


from Tkinter import *
root = Tk()


# 캔버스를 만들고 배경색을 흰색으로 설정


cv = Canvas(root,bg = 'white')


# 세 개의 직사각형 생성


rt1 = cv.create_rectangle(
10,10,110,110,
width = 8,
tags = (&#39;r1&#39;,&#39;r2&#39;,&#39;r3&#39;))
def printRect(event):
print &#39;rectangle&#39;
def printLine(event):
print 'line'


# 항목 바인딩 및 왼쪽 클릭 이벤트


cv.tag_bind ( 'r1','15ce60bce8d7fb5203c17f3141fee655',printRect)


# 항목 바인딩 및 마우스 오른쪽 버튼 클릭 이벤트


cv.tag_bind('r1',' 5511d829731dc3fdf5788f4a948f4312',printLine)


# 라인을 생성하고 태그를 'r1'으로 설정합니다


cv.create_line(10,200,100,200,width = 5,tags = &#39;r1&#39;)
cv.pack()
root.mainloop()


# 이벤트를 태그('r1')에 바인딩한 후 새 항목을 생성하고 바인딩된 이벤트의 태그를 지정합니다. 이는 참조와 일치하지 않습니다.
위 내용은 Tkinter Tutorial의 Canvas Chapter(3) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.