Tkinter教程之Canvas篇(4)

”’tkinter教程之canvas篇(4)”’

”’22.绘制弧形”’

# -*- coding: cp936 -*-

# 创建一个arc

  1. from Tkinter import *root = Tk()

登录后复制

# 创建一个Canvas,设置其背景色为白色

  1. cv = Canvas(root,bg = 'white')cv.create_arc((10,10,110,110),)cv.pack()root.mainloop()

登录后复制

# 使用默认参数创建一个ARC,结果为90度的扇形

”’23.设置弧形的样式”’

# -*- coding: cp936 -*-

# 创建create_arc.

  1. from Tkinter import *root = Tk()

登录后复制登录后复制登录后复制登录后复制登录后复制

# 创建一个Canvas,设置其背景色为白色

  1. cv = Canvas(root,bg = 'white')= {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.设置弧形的角度”’

# -*- coding: cp936 -*-

# 使用start/extent指定起始角度与偏移角度

  1. from Tkinter import *root = Tk()

登录后复制登录后复制登录后复制登录后复制登录后复制

# 创建一个Canvas,设置其背景色为白色

  1. cv = Canvas(root,bg = 'white')= {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()

# 使用三种样式,start指定起始角度;extent指定角度偏移

”’25.绘制位图”’

# -*- coding: cp936 -*-

# 使用bitmap创建位图create_bitmap

from Tkinter import *

root = Tk()

# 创建一个Canvas,设置其背景色为白色

  1. cv = Canvas(root,bg = 'white')= {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图像create_image

from Tkinter import *

root = Tk()

# 创建一个Canvas,设置其背景色为白色

  1. 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 *

root = Tk()

# 创建一个Canvas,设置其背景色为白色

  1. cv = Canvas(root,bg = 'white')= [(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,设置其背景色为白色

  1. cv = Canvas(root,bg = 'white')= [(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()

登录后复制

# 将直线的属性joinstyle分别设置为bevel/miter/round,测试其效果。

”’29.绘制椭圆”’

# -*- coding: cp936 -*-

# 绘制椭圆,使用create_oval属性

from Tkinter import *

root = Tk()

# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = ‘white’)

# 创建一个长200,宽100的椭圆

  1. cv.create_oval((10,10,210,110),fill = 'red')cv.pack()root.mainloop()

登录后复制

# 指定椭圆的长和宽,圆是长和宽相等的特殊情况。

”’30.创建多边形”’

# -*- coding: cp936 -*-

# 创建多边形(三角形)

from Tkinter import *

root = Tk()

# 绘制一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = ‘white’)

# 创建一个直角三角形

  1. cv.create_polygon((10,10,10,200,100,200),fill = 'red')cv.pack()root.mainloop()

登录后复制

# 指定三个点的坐标,三个点坐标必须满足三角形的定义。

”’31.修饰图形”’

# -*- coding: cp936 -*-

# 创建多边形create_ploygon(三角形)

from Tkinter import *

root = Tk()

# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = ‘white’)

# 创建一个直角三角形

  1. cv.create_polygon((10,10,10,200,100,200),#smooth = True, # 平滑处理,但未找到控制此参数的项splinesteps = 0, # 不明白是控制什么的???)cv.pack()root.mainloop()

登录后复制

# smooth/splinesteps用来修改绘制的图形,不明白这两个参数还有其它什么作用。

”’32.绘制文字”’

# -*- coding: cp936 -*-

# 使用文字create_text

  1. from Tkinter import *root = Tk()

登录后复制登录后复制登录后复制登录后复制登录后复制

# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = ‘white’)

# 创建一个文字对象,默认设置为居中对齐

  1. cv.create_text((10,10),text = 'Hello Text',anchor = W)cv.pack()root.mainloop()

登录后复制

# 使用anchor控制文字的位置,使用justify控制对齐方式

”’33.选中文字”’

# -*- coding: cp936 -*-

# 使用文字create_text

  1. from Tkinter import *root = Tk()

登录后复制登录后复制登录后复制登录后复制登录后复制

# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = ‘white’)

# 创建一个文字对象,默认设置为居中对齐

  1. txt = cv.create_text((10,10),text = 'Hello Text',anchor = W)

登录后复制

# 设置文本的选中起始位置

cv.select_from(txt,2)

# 设置文本的选中结束位置

  1. cv.select_to(txt,5)cv.pack()root.mainloop()

登录后复制

# 使用anchor控制文字的位置,使用justify控制对齐方式

”’34.创建组件”’

# -*- coding: cp936 -*-

# 使用子组件create_window

  1. from Tkinter import *root = Tk()

登录后复制登录后复制登录后复制登录后复制登录后复制

# 创建一个Canvas,设置其背景色为白色

cv = Canvas(root,bg = ‘white’)

# 创建一个Button对象,默认设置为居中对齐

  1. 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之上,即没有重叠

  1. cv.create_line(30,30,100,100)cv.pack()root.mainloop()

登录后复制

# 使用anchor组件在Canvas上的位置,默认情况下为居中对齐,这样使用后其它的item将不能再使用button战胜的那块区域

以上就是Tkinter教程之Canvas篇(4)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
编程技术

用仿ActionScript的语法来编写html5——第一篇,显示一张图片

2025-4-1 8:32:39

编程技术

Tkinter教程之Canvas篇(3)

2025-4-1 8:32:48

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索