ホームページ  >  記事  >  ウェブフロントエンド  >  Tkinter チュートリアル キャンバスの章 (4)

Tkinter チュートリアル キャンバスの章 (4)

黄舟
黄舟オリジナル
2017-01-17 10:18:241446ブラウズ

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

# 3点の座標を指定します、3 点座標は三角形の定義を満たさなければなりません。

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


# 使用するスムーズ/スプラインステップ 変更描画されたグラフィックスには、これら 2 つのパラメータが他にどのような機能があるのか​​わかりません。


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

# アンカーを使用してテキストの位置を制御し、justify を使用して配置を制御します

'''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中文网(www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。