飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2917|回复: 3

Tkinter图形界面之绘制线条

[复制链接]
  • TA的每日心情
    开心
    2024-5-27 23:24
  • 签到天数: 300 天

    [LV.8]以坛为家I

    发表于 2022-12-17 21:31:01 | 显示全部楼层 |阅读模式
    本帖最后由 small-q 于 2022-12-21 19:36 编辑

    绘制两个线条

    参考了下面这张图

    11132144U-1.gif

    本人实现的图

    QQ截图20221217212926.png

    实现代码
    [Python] 纯文本查看 复制代码
    from tkinter import *
    win = Tk()
    
    win.geometry('450x350+300+200')
    
    win['background'] = 'lightblue'
    
    cv = Canvas(win,bg='white',width=300,height=250)
    cv.pack()
    
    # 创建一个包含坐标的列表 列表里面包含元组 元组包含坐标
    list1 = [(10,20),(20,30),(30,40),(40,100),(100,140),(180,100)]
    
    # 在画布控件上绘制线条
    # dash参数表示绘制虚线轮廓 参数值是一个元组 分别代表虚线中的线段长度和线段之间的间隔
    # arrow参数表示设置线段的箭头样式 'last'意思是在线段末尾处添加箭头
    # smooth参数默认是False 表示是否使用平滑曲线的方式进行绘制
    line1 = cv.create_line(list1,fill='green',width=5,dash=(1,1),arrow='last')
    # 输出画布对象line1的唯一ID
    print(line1)
    
    line2 = cv.create_line(list1,fill='red',width=5,arrow='both',smooth=True)
    print(line2)
    
    # 画布控件使用coords()方法 用来改变画布对象line2的坐标 (移动坐标的位置 改变了线条的形状)
    cv.coords(line2,[30,40,25,35,35,45,40,100,40,30,180,10])
    
    win.mainloop()
    Tkinter图形界面之绘制线条



                                                              




    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    前天 09:43
  • 签到天数: 694 天

    [LV.9]以坛为家II

    发表于 2022-12-18 21:02:43 | 显示全部楼层
    谢谢楼主分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    6 天前
  • 签到天数: 661 天

    [LV.9]以坛为家II

    发表于 2022-12-18 22:06:41 | 显示全部楼层
    这个用小海龟也能画
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-27 23:24
  • 签到天数: 300 天

    [LV.8]以坛为家I

     楼主| 发表于 2022-12-19 08:30:09 | 显示全部楼层
    乐活 发表于 2022-12-18 22:06
    这个用小海龟也能画

    小海龟还没学
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表