Tkinter教程之Canvas篇(3)

原创 2007年10月05日 12:59:00
'''Tkinter教程之Canvas篇(3)'''
'''16.移动item'''
# -*- coding: cp936 -*-
#
 move指定x,y在偏移量
from Tkinter import *
root 
= Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = 'white')
# 创建两个同样的rectangle,比较移动前后的不同
rt1 = cv.create_rectangle(
    
10,10,110,110,
    tags 
= ('r1','r2','r3'))
cv.create_rectangle(
    
10,10,110,110,
    tags 
= ('r1','r2','r3'))
# 移动rt1
cv.move(rt1,20,-10)
cv.pack()
root.mainloop()
# move可以指定x,y在相对偏移量,可以为负值
'''17.删除item'''
# -*- coding: cp936 -*-
#
 delete删除给定的item
from Tkinter import *
root 
= Tk()
cv 
= Canvas(root,bg = 'white')
# 创建两个rectangle
rt1 = cv.create_rectangle(
    
10,10,110,110,
    tags 
= ('r1','r2','r3'))
r2 
= cv.create_rectangle(
    
20,20,110,110,
    tags 
= ('s1','s2','s3'))
# 使用id删除rt1
cv.delete(rt1)
# 使用tag删除r2
cv.delete('s1')

cv.pack()
root.mainloop()
# 两种方法删除item(id/tag)
'''18.缩放item'''
# -*- coding: cp936 -*-
#
 scale缩放item,计算公式:(coords - offset)*scale + offset
from Tkinter import *
root 
= Tk()
cv 
= Canvas(root,bg = 'white')
# 创建两个rectangle
rt1 = cv.create_rectangle(
    
10,10,110,110,
    tags 
= ('r1','r2','r3'))
# 将y坐标放大为原来的2位,x坐标值不变
cv.scale(rt1,0,0,1,2)
cv.pack()
root.mainloop()
# scale的参数为(self,xoffset,yoffset,xscale,yscale)
'''19.绑定item与event'''
# -*- coding: cp936 -*-
#
 使用tag_bind来绑定item与事件
from Tkinter import *
root 
= Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = 'white')
# 创建三个rectangle
rt1 = cv.create_rectangle(
    
10,10,110,110,
    width 
= 8,
    tags 
= ('r1','r2','r3'))
def printRect(event):
    
print 'rectangle'
# 绑定item与事件
cv.tag_bind('r1','<Button-1>',printRect)
cv.pack()
root.mainloop()
# 只有点击到矩形的边框时才会触发事件
'''20.添加绑定事件'''
# -*- coding: cp936 -*-
#
 使用tag_bind来绑定item与事件,与参考上测试结果不一致。
from Tkinter import *
root 
= Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = 'white')
# 创建三个rectangle
rt1 = cv.create_rectangle(
    
10,10,110,110,
    width 
= 8,
    tags 
= ('r1','r2','r3'))
def printRect(event):
    
print 'rectangle'
def printLine(event):
    
print 'line'
# 绑定item与左键事件
cv.tag_bind('r1','<Button-1>',printRect)
# 绑定item与右键事件
cv.tag_bind('r1','<Button-3>',printLine)
cv.pack()
root.mainloop()
# 只有点击到矩形的边框时才会触发事件,不使用add参数,默认就是向这个item添加一个处理函数,它不会替换原来的事件函数,例子结果:既响应左键又响应右键
'''21.绑定新的item与现有的tags'''
# -*- coding: cp936 -*-
#
 使用tag_bind来绑定item与事件,测试结果与参考上的说法不一致
from Tkinter import *
root 
= Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = 'white')
# 创建三个rectangle
rt1 = cv.create_rectangle(
    
10,10,110,110,
    width 
= 8,
    tags 
= ('r1','r2','r3'))
def printRect(event):
    
print 'rectangle'
def printLine(event):
    
print 'line'
# 绑定item与左键事件
cv.tag_bind('r1','<Button-1>',printRect)
# 绑定item与右键事件
cv.tag_bind('r1','<Button-3>',printLine)
# 创建一个line,并将其tags设置为'r1'
cv.create_line(10,200,100,200,width = 5,tags = 'r1')
cv.pack()
root.mainloop()
# 将事件与tag('r1')绑定后,创建新的item并指定已绑定事件的tag,新创建的item同样也与事件绑定,这个与参考上的说法也不一致
 

相关文章推荐

python-Tkinter教程之Canvas篇(2)

'''Tkinter教程之Canvas篇(2)''' '''9.创建item的tags''' # -*- coding: cp936 -*- # 使用属性tags设置item的tag # 使用...

[Tkinter 教程08] Canvas 图形绘制

简介 绘制文字 绘制 Oval 交互式绘图 绘制多边形 绘制Bitmap 绘制图片 小练习简介Canvas 为 Tkinter 提供了绘图功能. 其提供的图形组件包括 线形, 圆形, 图片, 甚至其他...

Python 3基础教程33-tkinter模块创建一个window窗体

本文开始介绍利用Python做一些GUI编程,这里先介绍如何利用tkinter模块创建一个window窗体。 # tkinter 模块创建一个窗体 from tkinter import * ''...

python3 tkinter教程

tk官网的教程学习:http://www.tkdocs.com/tutorial/firstexample.html#导入tkinter模块,以及导入ttk模块,tkinter是python结合tk的...

Python 3基础教程36-tkinter创建菜单

本文来介绍tkinter下的菜单创建过程,我们用过很多记事本软件,第一个菜单一般是File,File下面有保存,退出等按钮,第二个菜单是Edit,编辑菜单有撤销等功能。我们下面的代码大致可以模仿实现这...

Python 3基础教程34-tkinter添加一个按钮

在前面一篇文章的基础上,我们在上个窗体上添加一个按钮。 # tkinter 模块添加一个按钮 from tkinter import * ''' 开始接触桌面图形界面编程 你可以到安装路径:\li...

Tkinter教程之Label篇

'''2.在label上使用内置位图 bitmap的使用方法 ''' from tkinter import * # 初始化Tk root = Tk() # 创建一个label,使用编码,到现在为止...

Tkinter教程之Scrollbar篇

'''Tkinter教程之Scrollbar篇''' #Scrollbar(滚动条),可以单独使用,但最多的还是与其它控件(Listbox,Text,Canva等)结合使用 '''1.创建一个Scro...

Tkinter教程之Grid篇

Tkinter教程之Grid篇 摘自:http://blog.csdn.net/jcodeer/archive/2007/10/06/1813196.aspx
  • gzwgf
  • gzwgf
  • 2011年04月28日 19:49
  • 287

Tkinter教程之Event篇

'''Tkinter教程之Event篇(1)''' # 事件的使用方法 '''1.测试鼠标点击(Click)事件''' # -*- coding: cp936 -*- # :鼠标左击事件 #...
  • jkhere
  • jkhere
  • 2013年03月30日 15:16
  • 1780
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tkinter教程之Canvas篇(3)
举报原因:
原因补充:

(最多只允许输入30个字)