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

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

黄舟
黄舟원래의
2017-01-17 10:18:241482검색

'''Tkinter 튜토리얼 캔버스 장(4)'''


'''22. 호 그리기''


# -*- 코딩 : cp936 -*-


# ARC 만들기

from Tkinter import *
root = Tk()

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

cv = Canvas(root,bg = 'white')
cv.create_arc((10,10,110,110),)
cv.pack()
root.mainloop()


# 기본 매개변수를 사용하여 ARC를 생성합니다. 결과는 90도 섹터입니다.


''' 23. 호 스타일 설정'''


# -*- 코딩: cp936 -*-


# create_arc를 생성합니다.


from Tkinter import *
root = Tk()


# 캔버스를 생성합니다. , 배경색을 흰색으로 설정


cv = Canvas(root,bg = 'white')
d = {1:PIESLICE,2:CHORD,3:ARC}
for i in d:
cv.create_arc((10,10 + 60*i,110,110 + 60*i),style = d[i])
print i,d[i],
cv.pack()
root.mainloop()


# 세 가지 스타일을 사용하여 각각 부채꼴 모양, 활 모양, 호 모양을 만듭니다


'' '24. 호의 각도를 설정하세요''


# -*- 코딩: cp936 -*-


# 시작 각도를 지정하려면 시작/범위를 사용하세요. 오프셋 각도 사용


from Tkinter import *
root = Tk()

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


cv = Canvas(root,bg = 'white')
d = {1:PIESLICE,2:CHORD,3:ARC}
for i in d:
cv.create_arc(
(10,10 + 60*i,110,110 + 60*i),

style = d [ i], #스타일 지정


start = 30, #시작 각도 지정


extent = 30 #각도 오프셋 지정


)


cv.pack()


root.mainloop()


# 시작은 시작 각도를 지정하고 범위는 각도를 지정합니다. 오프셋


'''25. 비트맵 그리기''


# -*- 코딩: cp936 -*-


# 생성 비트맵을 사용하는 비트맵 create_bitmap


from Tkinter import *


root = Tk()


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

cv = Canvas(root,bg = 'white')
d = {1:'error',2:'info',3:'question',4:'hourglass'}
for i in d:
cv.create_bitmap((20*i,20*i),bitmap = d[i])
cv.pack()
root.mainloop()


# 비트맵 속성을 사용하여 비트맵의 이름을 지정합니다. 이 함수의 첫 번째 매개변수는 왼쪽 위 위치를 지정하는 점(x, y)입니다. 비트맵 저장 위치.


'''26. GIF 이미지 그리기''


# -*- 코딩: cp936 -*-


# 만들기 gif image create_image


from Tkinter import *


root = Tk()


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

cv = Canvas(root,bg = 'white')
img = PhotoImage(file = 'c:/python.gif')
cv.create_image((150,150),image = img)
cv.pack()
root.mainloop()


# 먼저 PhotoImage를 사용하여 GIF 이미지를 만든 다음 새로 생성된 img에 이미지 속성을 설정합니다


'''27 . Draw Line''


# -*- 코딩: cp936 -*-


# 화살표로 직선을 만듭니다 create_line


from Tkinter import *


root = Tk()


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

cv = Canvas(root,bg = 'white')
d = [(0,'none'),(1,'first'),(2,'last'),(3,'both')]
for i in d:
cv.create_line(
(10,10 + i[0]*20,110,110+ i[0] * 20), # 设置直线的起始、终点
arrow = i[1], # 设置直线是否使用箭头
arrowshape = '40 40 10' # 设置箭头的形状(填充长度,箭头长度,箭头宽度
)
cv.pack()
root.mainloop()


# 화살표 속성을 사용하여 화살표 표시 여부를 제어합니다


'''28 직선의 Joinstyle 속성'''


# -*- 코딩: cp936 -* -


# 직선을 만들고 Joinstyle 속성


을 사용합니다. from Tkinter import *


root = Tk()


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


cv = Canvas(root,bg = 'white')
d = [(0,'none','bevel'),(1,'first','miter'),(2,'last','round'),(3,'both','round')]
for i in d:
cv.create_line(
(10,10 + i[0]*20,110,110+ i[0] * 20), # 设置直线的起始、终点
arrow = i[1], # 设置直线是否使用箭头
arrowshape = '8 10 3', # 设置箭头的形状(填充长度,箭头长度,箭头宽度
joinstyle = i[2],
)
cv.pack()
root.mainloop()


# 조인 스타일 설정 경사/마이터/라운드에 대한 직선을 테스트하고 효과를 테스트합니다.


'''29. 타원 그리기''


# -*- 코딩: cp936 -*-


# 그리기 타원, create_oval 속성


from Tkinter import *


root = Tk()


#을 사용하여 캔버스를 만들고 설정합니다. 배경색을 흰색으로


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


# 길이가 200이고 너비가 100인 타원을 만듭니다.

cv.create_oval((10,10,210,110),fill = 'red')
cv.pack()
root.mainloop()

# 타원의 길이와 너비를 지정합니다. 원은 길이와 너비가 동일한 특수한 경우입니다.


'''30. 폴리곤 생성''


# -*- 코딩: cp936 -*-


# 폴리곤 생성 (삼각형)


from Tkinter import *


root = Tk()


# 캔버스를 그리고 배경색을 흰색으로 설정


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


# 직각삼각형 만들기


cv.create_polygon((10,10,10,200,100,200),fill = 'red')
cv.pack()
root.mainloop()

# 세 점의 좌표를 지정합니다. 세 점의 좌표는 삼각형의 정의를 충족해야 합니다.


'''31. 그래픽 수정''


# -*- 코딩: cp936 -*-


# 다각형 생성 create_ploygon(Triangle)


from Tkinter import *


root = Tk()


# 캔버스를 만들고 배경색을 다음으로 설정합니다. 흰색


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


# 직각삼각형 만들기

cv.create_polygon((10,10,10,200,100,200),
#smooth = True, # 平滑处理,但未找到控制此参数的项
splinesteps = 0, # 不明白是控制什么的???
)
cv.pack()
root.mainloop()


# Smooth/splinesteps는 그려진 그래픽을 수정하는 데 사용됩니다. 이 두 매개변수에는 어떤 다른 기능이 있는지 모르겠습니다.


'''32. 텍스트 그리기''


# -*- 코딩: cp936 -*-


# 텍스트 사용 create_text

from Tkinter import *
root = Tk()

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


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


# 텍스트 개체를 생성합니다. 기본 설정은 가운데 정렬입니다.


cv.create_text((10,10),text = 'Hello Text',
anchor = W
)
cv.pack()
root.mainloop()

# 앵커를 사용하여 텍스트 위치를 제어하고 양쪽 맞춤을 사용하여 텍스트 위치를 제어합니다. alignment


'''33. 텍스트 선택''


# -*- 코딩: cp936 -*-


# 사용 텍스트 생성_텍스트

from Tkinter import *
root = Tk()


# 创建一个Canvas,设置其背景色为白色


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


# 创建一个文字对象,默认设置为居中对齐

txt = cv.create_text((10,10),text = 'Hello Text',
anchor = W
)


# 设置文本的选中起始位置


cv.select_from(txt,2)


# 设置文本的选中结束位置

cv.select_to(txt,5)
cv.pack()
root.mainloop()

# 使用anchor控制文字的位置,使用justify控制对齐方式


'''34.创建组件'''


# -*- coding: cp936 -*-


# 使用子组件create_window

from Tkinter import *
root = Tk()

# 创建一个Canvas,设置其背景色为白色


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


# 创建一个Button对象,默认设置为居中对齐


def printWindow():
print 'window'
bt = Button(cv,text = 'ClickMe',command = printWindow)


#修改button在canvas上的对齐方式


cv.create_window((10,10),window = bt,anchor = W)


# 新创建的line对象与button有重叠


cv.create_line(10,10,20,20)


# 新创建的line不在button之上,即没有重叠


cv.create_line(30,30,100,100)
cv.pack()
root.mainloop()


# 使用anchor组件在Canvas上的位置,默认情况下为居中对齐,这样使用后其它的item将不能再使用button战胜的那块区域

以上就是Tkinter教程之Canvas篇(4)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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