1.创建

from tkinter import *

root=Tk()

cv=Canvas(root,bg='black')
cv.pack()

root.mainloop()

2.创建item

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_rectangle(10,10,110,110)
cv.pack()

root.mainloop()

3.填充颜色

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_rectangle(10,10,110,110,fill='red')
cv.pack()

root.mainloop()

4.边框颜色

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_rectangle(10,10,110,110,outline='red')
cv.pack()

root.mainloop()

5.边框宽度

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_rectangle(10,10,110,110,outline='red',width=5)
cv.pack()

root.mainloop()

6.画虚线

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_rectangle(10,10,110,110,outline='red',dash=10)
cv.pack()

root.mainloop()

7.创建tags

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt=cv.create_rectangle(10,10,110,110,tags='r1')
cv.pack()

print(cv.gettags(rt))
cv.itemconfig(rt,tags=('r2','r3','r4'))
print(cv.gettags(rt))

root.mainloop()

8.使用相同tag

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
cv.pack()

print(cv.gettags(rt))
cv.create_rectangle(20,20,80,80,tags='r3')
print(cv.find_withtag('r3'))

root.mainloop()

9.通过tag访问item

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
cv.pack()

cv.create_rectangle(20,20,80,80,tags='r3')
for item in cv.find_withtag('r3'):
    cv.itemconfig(item,outline='blue')

root.mainloop()

10.向item添加tag

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt1=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'))

cv.addtag_above('r4',rt2)
cv.addtag_below('r5',rt2)

for item in [rt1,rt2,rt3]:
    print(cv.gettags(item))
cv.pack()

root.mainloop()

11.返回其他item

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt1=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'))

cv.itemconfig(cv.find_above(rt2),outline='red')
cv.itemconfig(cv.find_below(rt2),outline='green')
cv.pack()

root.mainloop()

12.改变item在stack的顺序

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt1=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'))

cv.tag_lower(rt3)
cv.tag_raise(rt1)
cv.itemconfig(cv.find_above(rt2),outline='red')
cv.itemconfig(cv.find_below(rt2),outline='green')
cv.pack()

root.mainloop()

13.移动item

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
cv.move(rt1,20,-10)
cv.pack()

root.mainloop()

14.删除item

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
rt2=cv.create_rectangle(20,20,80,80,tags=('s1','s2','s3'))
cv.delete(rt1)
cv.delete('s1')
cv.pack()

root.mainloop()

15.缩放item

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))
cv.scale(rt1,0,0,1,2)
cv.pack()

root.mainloop()

16.事件绑定

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
rt1=cv.create_rectangle(10,10,110,110,tags=('r1','r2','r3'))

def printRect(event):
    print('rectangle')

cv.tag_bind('r1','<Button-1>',printRect)
cv.pack()

root.mainloop()

点击边框触发事件

17.弧形

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_arc((10,10,110,110))
cv.pack()

root.mainloop()

18.弧形样式

from tkinter import *

root=Tk()

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()

19.弧形角度

from tkinter import *

root=Tk()

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)
    print(i,d[i])
cv.pack()

root.mainloop()

20.绘制位图

from tkinter import *

root=Tk()

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()

21.直线

from tkinter import *

root=Tk()

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()

22.直线的joinstyle属性

from tkinter import *

root=Tk()

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()

23.椭圆

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_oval((10,10,210,110),fill='red')

cv.pack()

root.mainloop()

24.多边形

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_polygon((10,10,10,200,100,200),fill='red')

cv.pack()

root.mainloop()

25.文本

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
cv.create_text((10,10),text='Hello Text',anchor=W)

cv.pack()

root.mainloop()

26.选中文本

from tkinter import *

root=Tk()

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,6)
cv.pack()

root.mainloop()

27.创建组件

from tkinter import *

root=Tk()

cv=Canvas(root,bg='white')
def printWindow():
    print('window')

bt=Button(cv,text='ClickMe',command=printWindow)
cv.create_window((10,10),window=bt,anchor=W)
cv.create_line(10,10,20,20)
cv.create_line(30,30,100,100)
cv.pack()

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. trunc(sysdate)的含义是什么

    1.ORACLE中TRUNC是截取的函数

  2. OC中自定义init方法

    ---恢复内容开始--- 我们知道,在函数中实例化一个对象,大多数会同时进行初始化,如 Person *p =[ [Person alloc]init]; 此时已经进行了初始化,使用init方法,那么 ...

  3. mysql集群压测

    mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通过模拟多个并发客户端访问MySQL来执行压力测试,并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别.通过mysql ...

  4. JFinal DB.tx()事务回滚及lambda表达式应用

    JFinal DB.tx()事务回滚 在要往数据库操作多条数据时,就需要用到事务,JFinal中有封装好的事务应用 写法: Db.tx(new IAtom(){ @Override public bo ...

  5. 高级同步器:可重用的同步屏障Phaser

    引自:https://shift-alt-ctrl.iteye.com/blog/2302923 在JAVA 1.7引入了一个新的并发API:Phaser,一个可重用的同步barrier.在此前,JA ...

  6. JavaScript 时间对象 date()

    getYear() 获得的是距离1900年过了多少年 var d = new Date(); document.write(d+"<br />"); document. ...

  7. Xcode9.2 添加iOS11.2以下旧版本模拟器

    问题起源 由于手边项目需要适配到iOS7, 但是手边的测试机都被更新到最新版本,所以有些潜在的bug,更不发现不了.最近就是有个用户提出一个bug,而且是致命的,app直接闪退.app闪退,最常见的无 ...

  8. vue 图片压缩 基于cli3 配置

    chainWebpack: config => { const imagesRule = config.module.rule('images') imagesRule .use('image- ...

  9. Laravel 生成二维码

    (本实例laravel 版本 >=5.6, PHP版本 >=7.0) 1.首先,添加 QrCode 包添加到你的 composer.json 文件的 require 里: "re ...

  10. 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)

    选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...