'''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)!