zoukankan      html  css  js  c++  java
  • tkinter学习系列之(八) Canvas控件

    目录

    前言

    由于最近想在tkinter里内嵌matplotlib,由于用到tkinter里的carves控件,先学习一下。

    carves就是画布的意思,用于画图。

    (一)carves创建方法

    (1)说明:

    与其他的控件一样,carves的创建方也是在tk里。

    (2)源代码:

    import tkinter as tk
    
    win = tk.Tk()
    win.geometry("600x400+200+100")
    
    # 创建画布
    canvas = tk.Canvas(win, bg="orange")
    canvas.place(relx=0.05, rely=0.05, relwidth=0.9, relheight=0.9)
    
    win.mainloop()
    

    (3)输出效果:

    01.png

    (二)carves的画图方法

    (1)说明:

    方法 说明 参数
    .create_line() 画线 (起始坐标),(终点坐标),width=线宽,fill=颜色
    .create_arc() 画圆弧 (起始坐标),(终点坐标),width=线宽,fill=颜色
    .create_rectangle() 画矩形 (起始坐标),(终点坐标),fill='填充的颜色, outline=边框的颜色
    .create_oval() 画椭圆 (外接矩阵的四个坐标),fill='填充的颜色, outline=边框的颜色
    .create_polygon() 画多边形 d多个点的坐标,fill='填充的颜色, outline=边框的颜色
    .create_text() 显示文字 text="文字"
    .delete() 删除对象 创建线返回的对象

    (2)源代码:

    import tkinter as tk
    
    win = tk.Tk()
    win.geometry("600x400+200+100")
    canvas = tk.Canvas(win, bg="orange")
    canvas.place(relx=0.05, rely=0.05, relwidth=0.9, relheight=0.9)
    
    # 画一条实线, fill:填充的颜色
    line1 = canvas.create_line((0, 0), (100, 100), width=5, fill="red")
    
    # 画一条虚线 dash=(1, 1)
    canvas.create_line((200, 200), (200, 300), width=5, fill="green", dash=(1, 1))
    
    # 画一个圆弧
    canvas.create_arc((100, 100), (200, 200), width=5)
    
    # 显示文字
    canvas.create_text((300, 100), text="文字", font=("微软雅黑", 18))
    
    # 绘制矩形, outline:线条颜色
    canvas.create_rectangle(50, 25, 150, 75, fill='blue', outline='green', width=5)
    
    # 绘制椭圆
    canvas.create_oval(200, 25, 350, 75, fill='pink', outline='green', width=5)
    
    # 绘制多边形
    point = [(100, 100), (100, 200), (200, 300), (300, 400), (400, 500)]
    canvas.create_polygon(point, outline='green', fill='yellow')
    
    
    def dele_line():
        canvas.delete(line1)
    
    
    btn = tk.Button(canvas, text="删除", command=dele_line)
    btn.place(relx=0.4, rely=0.8)
    
    win.mainloop()
    

    (3)输出效果:

    02.png

    作者:Mark

    日期:2019/02/13 周三

  • 相关阅读:
    BZOJ3236:[AHOI2013]作业(莫队,分块)
    BZOJ5334:[TJOI2018]数学计算(线段树)
    BZOJ3173:[TJOI2013]最长上升子序列(Splay)
    BZOJ3211:花神游历各国(线段树)
    BZOJ3155:Preprefix sum(线段树)
    HDU5002:Tree(LCT)
    【BZOJ 1911】 [Apio2010]特别行动队
    【BZOJ 2875】 [Noi2012]随机数生成器
    【BZOJ 1054】 [HAOI2008]移动玩具
    【BZOJ 1497】 [NOI2006]最大获利
  • 原文地址:https://www.cnblogs.com/zyg123/p/10382630.html
Copyright © 2011-2022 走看看