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. [JavaScript]JS中的变量声明与有效域

    1.变量声明 var a = 1; //使用var声明变量 b = 1; //不使用var 第一种情况,在当前域中声明一个名为a的变量,如果实在方法内则为局部变量,若在最外层声明则a为全局变量. 第二 ...

  2. vue移动端项目vw适配运行项目时出现"advanced"报错解决办法。

    Module build failed: Error: Cannot load preset "advanced". Please check your configuration ...

  3. 在IDEA中关于项目java版本问题

    在IDEA中关于项目java版本问题 当出现错误如:java无效的源发行版11或IDEA Error:java:Compliation failed:internal java complier er ...

  4. 浅谈Django的中间件与Python的装饰器

    浅谈Django的中间件 与Python的装饰器 一.原理 1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该 ...

  5. MapReduce之Reduce Join

    一 介绍 Reduce Join其主要思想如下: 在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签(tag), 比如:t ...

  6. Spark 加载数据库mysql表中数据进行分析

    1.工程maven依赖包 <properties> <spark_version>2.3.1</spark_version> <!-- elasticsear ...

  7. GitLab 基本操作

    登录 在浏览其中输入http://192.168.3.11:8888 如图1登录界面.   图1 注:第一次新增用户,会发送修改密码链接到用户的邮箱中,用户会收到如图2邮件. 图2 2. 修改密码 点 ...

  8. 20190120-自定义实现split方法

    1. 实现字符串的split方法Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串 思路同自定义实现replace方法类型: 1. ...

  9. golang实现LRU,转载学习

    package main type LRUNode struct { key string val interface{} prev *LRUNode next *LRUNode } type LRU ...

  10. HDOJ:6333-Problem B. Harvest of Apples(组合数学+莫队算法+逆元)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6333 解题心得: 这个题可以说是十分精彩了,首先推组合数学的公式,其中一个很重要的公式是Cnm = C ...