首頁  >  文章  >  web前端  >  Tkinter教學之Canvas篇(4)

Tkinter教學之Canvas篇(4)

黄舟
黄舟原創
2017-01-17 10:18:241487瀏覽

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

# 建立一個Canvas,設定其背景色為白色



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),

style = d[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()


# 使用bitmap屬性來指定位圖的名稱,這個函數的第一個參數為一個點(x,y )指定位圖存放位置的左上位置。


'''26.繪製GIF圖像'''


# -*- 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()


# 先使用PhotoImage建立GIF影像,再將image屬性來設定為新建立的img
'27. ''


# -*- coding: cp936 -*-


# 建立帶箭頭的直線create_line

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


# 使用arrow屬性來控制是否顯示箭頭


'''28.直線的joinstyle屬性'''

*
# -*- coding: cp936 -- # 建立直線,使用joinstyle屬性


from Tkinter import *


root = Tk()


# 建立一個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()

# '''33.選取文字'''

# -*- 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)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn