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 周三

  • 相关阅读:
    lintcode395-硬币排成线 II
    lintcode-394-硬币排成线
    lintcode-392-打劫房屋
    lintcode-391-数飞机
    lintcode-389-判断数独是否合法
    lintcode-387-最小差
    lintcode-384-最长无重复字符的子串
    lintcode-383-装最多水的容器
    lintcode-382-三角形计数
    爬虫笔记:初始爬虫(二)
  • 原文地址:https://www.cnblogs.com/zyg123/p/10382630.html
Copyright © 2011-2022 走看看