Tkinter教程之Canvas(1)篇
来源:互联网 发布:广州轰趴馆 知乎 编辑:程序博客网 时间:2024/06/15 07:37
'''Tkinter教程之Canvas篇(1)'''# 提供可以用来进行绘图的Container,支持基本的几何元素,使用Canvas进行绘图时,所有的操作都是通过Canvas,不是通过它的元素# 元素的表示可以使用handle或tag。'''1.第一个Canvas程序'''# -*- coding: utf-8 -*-# 指定画布的颜色为白色from tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')cv.pack()root.mainloop()# 为明显起见,将背景色设置为白色,用以区别root
'''2.创建一个item'''# -*- coding: utf-8 -*-# 创建一个矩形,指定画布的颜色为白色from tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')# 创建一个矩形,坐标为(10,10,110,110)cv.create_rectangle(10, 10, 110, 110)'''3.指定item的填充色'''# 指定矩形的填充色为红色cv.create_rectangle(120, 10, 220, 110, fill='red')'''4.指定item的边框颜色'''# 指定矩形的边框颜色为红色cv.create_rectangle(10,120,110,220,outline = 'red')'''5.指定边框的宽度'''# 指定矩形的边框颜色为红色,设置线宽为5,注意与Canvas的width是不同的。cv.create_rectangle(120,120,220,220,outline = 'red',width = 5)cv.pack()root.mainloop()# 为明显起见,将背景色设置为白色,用以区别root
'''6.画虚线'''# -*- coding: utf-8 -*-# 指定画布的背景色为白色# 使用属性dash,这个值只能为奇数from tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色# 指定矩形的边框颜色为红色,画虚线cv = Canvas(root, bg='white')cv.create_rectangle(10, 10, 110, 110, outline='red', dash=10, fill='green')'''7.使用画刷填充'''cv.create_rectangle(120, 10, 220, 110, outline = 'red', stipple = 'gray12', fill = 'green')cv.pack()root.mainloop()
'''8.修改item的坐标'''# -*- coding: utf-8 -*-# 指定画布的背景色为白色# 使用Canvas的方法来重新设置item的坐标from tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')rt = cv.create_rectangle(10, 10, 110, 110, outline='red', stipple='gray12', fill='green')cv.pack()# 重新设置rt的坐标(相当于移动一个item)cv.coords(rt, (40, 40, 80, 80))root.mainloop()# 动态修改item的坐标
'''9.创建item的tags'''# -*- coding: utf-8 -*-# 使用属性tags设置item的tag# 使用Canvas的方法gettags获取指定item的tagsfrom tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')# 使用tags指定一个tag('r1')rt = cv.create_rectangle(10, 10, 110, 110, tags='r1' )cv.pack()print(cv.gettags(rt))# 使用tags属性指定多个tags,即重新设置tags的属性cv.itemconfig(rt, tags=('r2', 'r3', 'r4'))print(cv.gettags(rt))root.mainloop()# 动态修改item的坐标
'''10.多个item使用同一个tag'''# -*- coding: utf-8 -*-# 多个控件使用同一个tagfrom tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')# 使用tags指定一个tag('r1')rt = cv.create_rectangle(10, 10, 110, 110, tags=('r1', 'r2', 'r3') )cv.pack()cv.create_rectangle(20, 20, 80, 80, tags='r3')print(cv.find_withtag('r3'))root.mainloop()# 动态修改item的坐标# fid_withtag返回所有与tag绑定的item。
'''11.通过tag来访问item'''# -*- coding: utf-8 -*-# 得到了tag值也就得到了这个item,可以对这个item进行相关的设置。from tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')# 使用tags指定一个tag('r1')rt = cv.create_rectangle(10, 10, 110, 110, tags=('r1', 'r2', 'r3') )cv.pack()cv.create_rectangle(20, 20, 80, 80, tags='r3')# 将所有与tag('r3')绑定的item边框颜色设置为蓝色for item in cv.find_withtag('r3'): print(item) cv.itemconfig(item, outline='blue')root.mainloop()# 动态修改与tag('r3')绑定的item边框颜色
'''13.向其它item添加tag'''# -*- coding: utf-8 -*-# 使用addtag_来向上一个或下一个item添加tagfrom tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')# 创建三个rectanglert1 = cv.create_rectangle( 10, 10, 110, 110, tags=('r1', 'r2', 'r3'))rt2 = cv.create_rectangle( 20, 20, 80, 80, tags=('s1', 's2', 's3'))rt3 = cv.create_rectangle( 30, 30, 70, 70, tags=('y1', 'y2', 'y3'))# 向rt2的上一个item添加r4cv.addtag_above('r4', rt2)# 向rt2的下一个item添加r5cv.addtag_below('r5', rt2)for item in [rt1, rt2, rt3]: print(cv.gettags(item))cv.pack()root.mainloop()# Canvas使用了stack的技术,新创建的item总是位于前一个创建的item之上,故调用above时,它会查找rt2上面的item为rt3,故rt3中添加了tag('r4'),# 同样add_below会查找下面的item。
'''14.返回其它item'''# -*- coding: utf-8 -*-# 使用find_xxx查找上一个或下一个itemfrom tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')# 创建三个rectanglert1 = cv.create_rectangle( 10, 10, 110, 110, tags=('r1', 'r2', 'r3'))rt2 = cv.create_rectangle( 20, 20, 80, 80, tags=('s1', 's2', 's3'))rt3 = cv.create_rectangle( 30, 30, 70, 70, tags=('y1', 'y2', 'y3'))# 查找rt2的上一个item,并将其边框颜色设置为红色cv.itemconfig(cv.find_above(rt2), outline='red',width='5')# 查找rt2的下一个item,并将其边框颜色设置为绿色cv.itemconfig(cv.find_below(rt2), outline='green',width='2')cv.pack()root.mainloop()# Canvas使用了stack的技术,新创建的item总是位于前一个创建的item之上,故调用above时,# 它会查找rt2上面的item为rt3,故rt3中边框颜色设置为红色,同样add_below会查找下面的item。
0 0
- Tkinter教程之Canvas篇(1)
- python-Tkinter教程之Canvas篇(1)
- Tkinter教程之Canvas(1)篇
- Tkinter教程之Canvas篇(2)
- Tkinter教程之Canvas篇(3)
- Tkinter教程之Canvas篇(4)
- python-Tkinter教程之Canvas篇(2)
- python--Tkinter教程之Canvas篇(3)
- Tkinter教程之Canvas(2)篇
- Tkinter教程之Canvas篇(3)
- Tkinter之Canvas篇
- Tkinter教程之Button篇(1)
- Tkinter教程之Text(1)篇
- Tkinter教程之Event篇(1)'
- '''Tkinter教程之Event篇(1)'''
- Python Tkinter教程之Text(1)篇
- Python Tkinter教程之Event篇(1)
- Tkinter教程之Text(1)篇
- 廖雪峰python学习笔记1:hello python
- RichTextBox的LoadFile函数的用法
- 十种常见的营销策略
- DM8168 系统编译、启动、烧写
- Lua continue
- Tkinter教程之Canvas(1)篇
- Python序列化模型数据为JSON
- PHP中文乱码
- Python 脚本获取上一个工作日的方法
- elasticsearch 别名的操作
- ugui scrollview使用
- 你的最大痛苦是:懒虫却盼巅峰
- c++中头文件应养成的习惯
- Java Security 总纲