Tkinter教程之Canvas篇(3)
来源:互联网 发布:mac怎么关掉客人用户 编辑:程序博客网 时间:2024/05/29 15:41
'''25.绘制位图'''# -*- coding: utf-8 -*-# 使用bitmap创建位图create_bitmapfrom 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: utf-8 -*-# 创建gif图像create_imagefrom tkinter import *root = Tk()# 创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg='white')img = PhotoImage(file='d:/1.png')cv.create_image((150, 150), image=img)cv.pack()root.mainloop()# 先使用PhotoImage创建GIF图像,再将image属性来设置为新创建的img
'''27.绘制直线'''# -*- coding: utf-8 -*-# 创建带箭头的直线create_linefrom 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: utf-8 -*-# 创建直线,使用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: utf-8 -*-# 绘制椭圆,使用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: utf-8 -*-# 创建多边形(三角形)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: utf-8 -*-# 创建多边形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: utf-8 -*-# 使用文字create_textfrom 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: utf-8 -*-# 使用文字create_textfrom 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: utf-8 -*-# 使用子组件create_windowfrom 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战胜的那块区域
0 0
- Tkinter教程之Canvas篇(3)
- python--Tkinter教程之Canvas篇(3)
- Tkinter教程之Canvas篇(3)
- Tkinter教程之Canvas篇(1)
- Tkinter教程之Canvas篇(2)
- Tkinter教程之Canvas篇(4)
- python-Tkinter教程之Canvas篇(1)
- python-Tkinter教程之Canvas篇(2)
- Tkinter教程之Canvas(1)篇
- Tkinter教程之Canvas(2)篇
- Tkinter之Canvas篇
- Tkinter教程之Text篇(3)
- Tkinter教程之Event篇(3)
- Python Tkinter教程之Text篇(3)
- Python Tkinter教程之Event篇(3)
- Tkinter教程之Event篇(3)
- Tkinter教程之Event篇(3)
- Tkinter教程之Label篇
- Javascript面向对象编程
- ListView(头部+下拉筛选+顶部悬停)
- 检测MySQL负载过高及解决方法(详解SSH TOP命令)
- RTMP流媒体播放过程
- Centos 建立用户
- Tkinter教程之Canvas篇(3)
- iOS开发---本地通知(UILocalNotification)
- CSS水平居中和垂直居中解决方案
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- CSS-DOM设计style属性的艺术
- 组合算法
- RecyclerView---高仿网易新闻客户端
- Python从入门到放弃(一):概论
- 不要轻易挑战用户的习惯,否则会被用户打脸!