1.创建

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='black')
  4. cv.pack()
  5. root.mainloop()

2.创建item

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_rectangle(10,10,110,110)
  5. cv.pack()
  6. root.mainloop()

3.填充颜色

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_rectangle(10,10,110,110,fill='red')
  5. cv.pack()
  6. root.mainloop()

4.边框颜色

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_rectangle(10,10,110,110,outline='red')
  5. cv.pack()
  6. root.mainloop()

5.边框宽度

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_rectangle(10,10,110,110,outline='red',width=5)
  5. cv.pack()
  6. root.mainloop()

6.画虚线

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_rectangle(10,10,110,110,outline='red',dash=10)
  5. cv.pack()
  6. root.mainloop()

7.创建tags

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt=cv.create_rectangle(10,10,110,110,tags='r1')
  5. cv.pack()
  6. print(cv.gettags(rt))
  7. cv.itemconfig(rt,tags=('r2','r3','r4'))
  8. print(cv.gettags(rt))
  9. root.mainloop()

8.使用相同tag

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. cv.pack()
  6. print(cv.gettags(rt))
  7. cv.create_rectangle(20,20,80,80,tags='r3')
  8. print(cv.find_withtag('r3'))
  9. root.mainloop()

9.通过tag访问item

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. cv.pack()
  6. cv.create_rectangle(20,20,80,80,tags='r3')
  7. for item in cv.find_withtag('r3'):
  8. cv.itemconfig(item,outline='blue')
  9. root.mainloop()

10.向item添加tag

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. rt2=cv.create_rectangle(20,20,80,80,tags=('s1','s2','s3'))
  6. rt3=cv.create_rectangle(30,30,70,70,tags=('y1','y2','y3'))
  7. cv.addtag_above('r4',rt2)
  8. cv.addtag_below('r5',rt2)
  9. for item in [rt1,rt2,rt3]:
  10. print(cv.gettags(item))
  11. cv.pack()
  12. root.mainloop()

11.返回其他item

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. rt2=cv.create_rectangle(20,20,80,80,tags=('s1','s2','s3'))
  6. rt3=cv.create_rectangle(30,30,70,70,tags=('y1','y2','y3'))
  7. cv.itemconfig(cv.find_above(rt2),outline='red')
  8. cv.itemconfig(cv.find_below(rt2),outline='green')
  9. cv.pack()
  10. root.mainloop()

12.改变item在stack的顺序

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. rt2=cv.create_rectangle(20,20,80,80,tags=('s1','s2','s3'))
  6. rt3=cv.create_rectangle(30,30,70,70,tags=('y1','y2','y3'))
  7. cv.tag_lower(rt3)
  8. cv.tag_raise(rt1)
  9. cv.itemconfig(cv.find_above(rt2),outline='red')
  10. cv.itemconfig(cv.find_below(rt2),outline='green')
  11. cv.pack()
  12. root.mainloop()

13.移动item

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  6. cv.move(rt1,20,-10)
  7. cv.pack()
  8. root.mainloop()

14.删除item

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. rt2=cv.create_rectangle(20,20,80,80,tags=('s1','s2','s3'))
  6. cv.delete(rt1)
  7. cv.delete('s1')
  8. cv.pack()
  9. root.mainloop()

15.缩放item

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. cv.scale(rt1,0,0,1,2)
  6. cv.pack()
  7. root.mainloop()

16.事件绑定

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
  5. def printRect(event):
  6. print('rectangle')
  7. cv.tag_bind('r1','<Button-1>',printRect)
  8. cv.pack()
  9. root.mainloop()

点击边框触发事件

17.弧形

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_arc((10,10,110,110))
  5. cv.pack()
  6. root.mainloop()

18.弧形样式

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. d={1:PIESLICE,2:CHORD,3:ARC}
  5. for i in d:
  6. cv.create_arc((10,10+60*i,110,110+60*i),style=d[i])
  7. print(i,d[i])
  8. cv.pack()
  9. root.mainloop()

19.弧形角度

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. d={1:PIESLICE,2:CHORD,3:ARC}
  5. for i in d:
  6. cv.create_arc((10,10+60*i,110,110+60*i),style=d[i],start=30,extent=30)
  7. print(i,d[i])
  8. cv.pack()
  9. root.mainloop()

20.绘制位图

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. d={1:'error',2:'info',3:'question',4:'hourglass'}
  5. for i in d:
  6. cv.create_bitmap((20*i,20*i),bitmap=d[i])
  7. cv.pack()
  8. root.mainloop()

21.直线

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. d=[(0,'none'),(1,'first'),(2,'last'),(3,'both')]
  5. for i in d:
  6. cv.create_line((10,10+i[0]*20,110,110+i[0]*20),arrow=i[1],arrowshape='40 40 10')
  7. cv.pack()
  8. root.mainloop()

22.直线的joinstyle属性

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. d=[(0,'none','bevel'),(1,'first','miter'),(2,'last','round'),(3,'both','round')]
  5. for i in d:
  6. cv.create_line((10,10+i[0]*20,110,110+i[0]*20),arrow=i[1],arrowshape='8 10 3',joinstyle=i[2])
  7. cv.pack()
  8. root.mainloop()

23.椭圆

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_oval((10,10,210,110),fill='red')
  5. cv.pack()
  6. root.mainloop()

24.多边形

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_polygon((10,10,10,200,100,200),fill='red')
  5. cv.pack()
  6. root.mainloop()

25.文本

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. cv.create_text((10,10),text='Hello Text',anchor=W)
  5. cv.pack()
  6. root.mainloop()

26.选中文本

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. txt=cv.create_text((10,10),text='Hello Text',anchor=W)
  5. cv.select_from(txt,2)
  6. cv.select_to(txt,6)
  7. cv.pack()
  8. root.mainloop()

27.创建组件

  1. from tkinter import *
  2. root=Tk()
  3. cv=Canvas(root,bg='white')
  4. def printWindow():
  5. print('window')
  6. bt=Button(cv,text='ClickMe',command=printWindow)
  7. cv.create_window((10,10),window=bt,anchor=W)
  8. cv.create_line(10,10,20,20)
  9. cv.create_line(30,30,100,100)
  10. cv.pack()
  11. root.mainloop()

 

Python3 Tkinter-Canvas的更多相关文章

  1. python3+tkinter实现的黑白棋,代码完整 100%能运行

    今天分享给大家的是采用Python3+tkinter制作而成的小项目--黑白棋 tkinter是Python内置的图形化模块,简单易用,一般的小型UI程序可以快速用它实现,具体的tkinter相关知识 ...

  2. tkinter Canvas画图片大坑总结

    一.ImportError: cannot import name '_imagingtk' 问题描述 使用tkinter画pillow生成的图片时,在tkinter中抛出此异常. 解决方案 pip ...

  3. Python3 tkinter基础 Canvas delete 删除画布中的所有图形

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  4. Python3 tkinter基础 Canvas create_text 在画布上添加文字

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Python3 tkinter基础 Canvas create_rectangle 画虚边的矩形 create_oval 画椭圆形 圆形

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. Python3 tkinter基础 Canvas create_rectangle 画矩形

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. Python3 tkinter基础 Canvas create_line 画实线与虚线

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. Python3 tkinter基础 Canvas create_polygon 画三角形

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  9. Python3 tkinter基础 Canvas coords 移动直线,itemconfig 设置矩形的颜色, delete 删除一条直线

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  10. Python3 tkinter基础 Canvas bind 鼠标左键点击时,在当前位置画椭圆形

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

随机推荐

  1. PX4地面站QGroundControl在ubuntu下的安装

    1.引言 相信很多玩开源无人机的朋友手上都有一架无人机,而不是仅仅停留在理论的学习和程序的学习.放飞自己组装的无人机才是乐趣所在,那么这本文就介绍玩无人机必不可少的地面站软件qgroundcontro ...

  2. 听说玩JAVA,必须过JDK这关?

    JDK是什么?JRE是什么?JDK和JRE的区别? Java Runtime Environment (JRE) 包含: Java虚拟机.库函数.运行Java应用程序和Applet所必须文件 Java ...

  3. c#随便聊聊数据库操作

    最近在学习web后台以及Python,到了程序员的转折年纪了,哎.估计很久不会写博文了.言归正传. 在原理的数据库连接池HiKari项目上.我扩展了独立的3个库,说是3个库,其实原本该是一个库.先聊聊 ...

  4. chromium之MessagePump.h

    上代码,注释已经写得很详细了. 粗看一下,这是个纯虚类,用于跨平台的通用接口. MessagePump,Pump的意思是泵,,MessagePump也就是消息泵,输送消息 namespace base ...

  5. ABAP术语-SAP GUI for HTML

    SAP GUI for HTML 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/14/1104996.html An ITS impleme ...

  6. zabbix 3.x 监控日志文件

    1.启用zabbix主动模式 在zabbix agent端,修改/etc/zabbix/zabbix_agentd.conf ServerActive=服务端IP Hostname=tspnginx0 ...

  7. PHP基础2--基本语法

    主要: 标记符,注释 变量 常量 数据类型 运算符 流程控制 标记符,注释 4种标记符号: 1.  默认形式:  <?php    php语句      ?> 如果<?php ... ...

  8. Flask基本介绍

    Fask 1.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架对于Werkzeug本质是socket服务端,其用于接收http ...

  9. AtCoder Regular Contest 098 F.Donation

    传送门 首先,对于一个点i,进入这个点前必须大于等于Ai,每个点必须捐赠Bi 那么我们可以在每个点最后一次经过的时候再捐赠,这样显然更优 现在我们假设每个点都是最后一次经过的时候捐赠.现在我们把捐赠的 ...

  10. geoserver中WMS服务详细说明

    官方geoserver中WMS服务中几种操作的API的详细说明地址: http://docs.geoserver.org/stable/en/user/services/wms/reference.h ...