'''Tkinter チュートリアル キャンバス 章 (4)'''
'''22. 円弧を描く'''
# -*-coding: cp936 -*-
# ARC を作成する
from Tkinter import * root = Tk()
# Canvas を作成し、その背景色を白に設定します
cv = Canvas(root,bg = 'white') cv.create_arc((10,10,110,110),) cv.pack() root.mainloop()
# デフォルトのパラメータを使用して ARC を作成します。結果は 90 度のセクターになります
'''23。 '' '
# -*-coding: cp936 -*-
# create_arc.を作成します
from Tkinter import * root = Tk()
# Canvasを作成し、背景色を白に設定します
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()
# を使用します3 つのスタイル、それぞれセクター、弓、円弧を作成します
'''24. 円弧の角度を設定します'''
# -*- コーディング: cp936 -*-
# 開始角度を指定するには開始/範囲を使用しますとオフセット角度
from Tkinter import * root = Tk()
# Canvasを作成し、背景色を白に設定します
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()
# 3 つのスタイルを使用し、start は開始角度を指定し、extent は角度オフセットを指定します
'''25. ビットマップを描画します'''
# -*-coding: cp936 -*-
# ビットマップを使用してビットマップを作成する create_bitmap
from Tkinter import *
root = Tk()
# Canvas を作成し、その背景色を白に設定します
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画像を描画'''
# -*-coding: cp936 -*-
# gif画像を作成する create_image
from Tkinter import *
root = Tk( )
# Canvas を作成し、背景色を白に設定します
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。直線を描く' ''
# -*-coding: cp936 -*-
# 矢印で直線を作成する create_line
from Tkinter import *
root = Tk()
# Canvas を作成し、その背景色を白に設定します
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()
# 矢印を表示するかどうかを制御するには、arrow 属性を使用します
'''28 直線の joinstyle 属性です
。 # -*-coding: cp936 -*-
# 直線を作成し、joinstyle 属性を使用する
from Tkinter import *
root = Tk()
# Canvas を作成し、その背景色を設定するtowhite
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()
# 直線の属性をそれぞれ結合します bevel/miter/round に設定し、その効果をテストします。
'''29. 楕円を描く'''
# -*-coding: cp936 -*-
# 楕円を描くには、Tkinter import *からの create_oval 属性を使用します
root = Tk( )
# Canvasを作成し、背景色を白に設定します
cv = Canvas(root,bg = 'white')
# 長さ200、幅200の楕円を作成します100
cv.create_oval((10,10,210,110),fill = 'red') cv.pack() root.mainloop()
'''30. ポリゴンを作成します'''
# -*- コーディング: cp936 -*-
# ポリゴン (三角形) を作成します
from Tkinter import *
root = Tk()
# Canvasを描画し、背景色を白に設定します
cv = Canvas(root,bg = 'white')
# 直角三角形を作成します
cv.create_polygon((10,10,10,200,100,200),fill = 'red') cv.pack() root.mainloop()
'''31. グラフィックを変更します'''
# -*-coding: 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()
'''32. テキストを描画します'''
# -*-coding: 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()
'''33. テキストを選択します''
# -*- コーディング: cp936 -*-
# テキストを使用します create_text
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中文网(m.sbmmt.com)!