Tkinter教程之Canvas篇(4)

本文转载自:http://blog.csdn.net/jcodeer/article/details/1812091

‘‘‘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()
# 创建一个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()
# 使用三种样式,分别创建了扇形、弓形和弧形
‘‘‘24.设置弧形的角度‘‘‘
# -*- coding: cp936 -*-
# 使用start/extent指定起始角度与偏移角度
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()
# 使用三种样式,start指定起始角度;extent指定角度偏移
‘‘‘25.绘制位图‘‘‘
# -*- coding: cp936 -*-
# 使用bitmap创建位图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()
# 使用bitmap属性来指定位图的名称,这个函数的第一个参数为一个点(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图像,再将image属性来设置为新创建的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,设置其背景色为白色
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()
# 将直线的属性joinstyle分别设置为bevel/miter/round,测试其效果。
‘‘‘29.绘制椭圆‘‘‘
# -*- coding: cp936 -*-
# 绘制椭圆,使用create_oval属性
from Tkinter import *
root = Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = ‘white‘)
# 创建一个长200,宽100的椭圆
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‘)
# 创建一个直角三角形
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‘)
# 创建一个直角三角形
cv.create_polygon((10,10,10,200,100,200),
                  #smooth = True,   # 平滑处理,但未找到控制此参数的项
                  splinesteps = 0,  # 不明白是控制什么的???
                  )
cv.pack()
root.mainloop()
# smooth/splinesteps用来修改绘制的图形,不明白这两个参数还有其它什么作用。
‘‘‘32.绘制文字‘‘‘
# -*- coding: cp936 -*-
# 使用文字create_text
from Tkinter import *
root = Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = ‘white‘)
# 创建一个文字对象,默认设置为居中对齐
cv.create_text((10,10),text = ‘Hello Text‘,
               anchor = W
               )
cv.pack()
root.mainloop()
# 使用anchor控制文字的位置,使用justify控制对齐方式
‘‘‘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战胜的那块区域

时间: 2024-10-08 22:43:50

Tkinter教程之Canvas篇(4)的相关文章

Tkinter教程之Canvas篇(1)

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811803 '''Tkinter教程之Canvas篇(1)'''# 提供可以用来进行绘图的Container,支持基本的几何元素,使用Canvas进行绘图时,所有的操作都是通过Canvas,不是通过它的元素# 元素的表示可以使用handle或tag.'''1.第一个Canvas程序'''# -*- coding: cp936 -*-# 指定画布的颜色为白色from Tkinter impor

Tkinter教程之Canvas篇(2)

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811888 '''Tkinter教程之Canvas篇(2)''''''9.创建item的tags'''# -*- coding: cp936 -*-# 使用属性tags设置item的tag# 使用Canvas的方法gettags获取指定item的tagsfrom Tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root

Tkinter教程之Canvas篇(3)

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811922 ''Tkinter教程之Canvas篇(3)''''''16.移动item'''# -*- coding: cp936 -*-# move指定x,y在偏移量from Tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root,bg = 'white')# 创建两个同样的rectangle,比较移动前后的不同r

Tkinter教程之Checkbutton篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811306 #Tkinter教程之Checkbutton篇#Checkbutton又称为多选按钮,可以表示两种状态:On和Off,可以设置回调函数,每当点击此按钮时回调函数被调用'''1.一个简单的Checkbutton例子'''#创建一个Checkbutton,显示文本为"python"from Tkinter import *root = Tk()Checkbutton(roo

Tkinter教程之Listbox篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811310 #Tkinter教程之Listbox篇#Listbox为列表框控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选'''1.创建一个Listbox,向其中添加三个item'''from Tkinter import *root = Tk()lb = Listbox(root)for item in ['python','tkinter','widget']

Tkinter教程之Label篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811293 #Tkinter教程之Label篇'''1.Label的第一个例子text属性使用方法'''#要使用Tk模块,除非你不想使用这个模块,那整个教程就不需要看了from Tkinter import *#初始化Tkroot = Tk()#创建一个label,使用编码,到现在为止还没有使用过直接通过“drag-and-drop”就可以完成的IDE.label = Label(root,

Tkinter教程之Radiobutton篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811308 #Tkinter教程之Radiobutton篇#Radiobutton为单选按钮,即在同一组内只能有一个按钮被选中,每当选中组内的一个按钮时,其它的按钮自动改为非选中态,与其他控件不同的是:它有组的概念'''1.创建一个简单的Radiobutton'''from Tkinter import *root = Tk()Radiobutton(root,text = 'python'

Tkinter教程之Entry篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811302 #Tkinter教程之Entry篇#Entry用来输入单行文本'''1.第一个Entry程序'''from Tkinter import *root = Tk()Entry(root,text = 'input your text here').pack()root.mainloop()#上面的代码目的是创建一个Entry对象,并在Entry上显示'input your text

Tkinter教程之Scale篇

本文转载自:http://blog.csdn.net/jcodeer/article/details/1811313 '''Tkinter教程之Scale篇'''#Scale为输出限定范围的数字区间,可以为之指定最大值,最小值及步距值'''1.创建一个Scale'''from Tkinter import *root = Tk()Scale(root).pack()root.mainloop()#创建一个垂直Scale,最大值为100,最小值为0,步距值为1.这个参数设置也就是Scale的缺省设