'''Tkinter教程之Canvas篇(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()
# 建立一個一個真正vas,設定其背景色為白色
樣式,分別建立了扇形、弓形和弧形
'''24.設定弧形的角度'''
# -*- coding: cp936 -*-
#start/extent指定始角度與偏移角度
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()
from Tkinter import * root = Tk()style = d[i], #指定樣式
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),
角度
extent = 30 #指定角度偏移
)
cv.pack()
root.mainloop()
f
root.mainloop()
f f角度偏移
'''25.繪製點陣圖'''
# -*- coding: cp936 -*-
# 使用bitmapcomfeecreate_bitmapc 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()
# -*- coding: cp936 -*-
# 建立gif
# 建立一個Canvas,設定其背景色為白色
cv = Canvas(root,bg = 'white') img = PhotoImage(file = 'c:/python.gif') cv.create_image((150,150),image = img) cv.pack() root.mainloop()
from Tkinter import *
Cangoo
=Tfrom Tkinter import *
Canke5%背景色為白色
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()
# 建立一個Canvas,設定其背景色為白色
為白色
設定為bevel/miter/round,測試其效果。
'''29.繪製橢圓'''
# -*- coding: cp936 -*-
# 繪製橢圓,使用create_oval屬性
# 繪製橢圓,使用create_oval屬性
)
# 建立一個Canvas,設定其背景色為白色
cv = Canvas(root,bg = 'white')
# 建立一個長200,寬100的橢圓
# 建立一個長200,寬100的橢圓
橢圓的長和寬,圓是長和寬相等的特殊情況。
'''30.建立多邊形'''
# -*- coding: cp936 -*-
# 建立多邊形(三角形)
# 繪製一個Canvas,設定其背景色為白色
cv = Canvas(root,bg = 'white')
# 創建一個直角三角形
#
# 創建一個直角三角形
#
,三個點座標必須滿足三角形的定義。
'''31.修飾圖形'''
# -*- coding: cp936 -*-
# 建立多邊形create_ploygon(三角形)
# 建立多邊形create_ploygon(三角形)
(帶 Tinterfromkinterf7pploygon(三角形)
)
# 建立一個Canvas,設定其背景色為白色
cv = Canvas(root,bg = 'white')
# 創建一個直角三角形
/sp
修改繪製的圖形,不明白這兩個參數還有其它什麼作用。
'''32.繪製文字'''
# -*- coding: cp936 -*-
# 使用文字create_text
rr
cv = Canvas(root,bg = 'white')
# 建立一個文字對象,預設為居中對齊
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()
# -*- coding: 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)!