清已lala 2024-03-28 22:11 采纳率: 100%
浏览 16
已结题

tkinter中canvas的画线,如何让它不遮盖原背景?

img

img

使用python的tkinter的canvas画直线,画出来的线会自带白色边框,怎么去掉它?
怎么让画出来的线不覆盖原来的背景颜色?

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-03-28 22:12
    关注

    2301_80252861 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    在Tkinter中,Canvas对象可以使用create_line方法来绘制直线。默认情况下,绘制的线条会有一个白色的边框,且会覆盖原来的背景颜色。

    为了让画出来的线不覆盖原来的背景颜色,你可以使用以下解决方案:

    1. 设置linecap参数为ROUND: 在创建线条时,可以将linecap参数设置为ROUND,这样可以让线条的两个端点圆滑连接起来,避免了白色边框的出现。
    pen.create_line(50, 50, 700-50, 50, fill='black', capstyle='round')
    
    1. 在Canvas上设置背景颜色: 在创建Canvas对象后,可以使用configure方法来设置Canvas的背景颜色,这样绘制的线条就不会覆盖原来的背景颜色了。
    pen=tk.Canvas(plat, bg='white')
    pen.create_line(50, 50, 700-50, 50, fill='black')
    pen.pack()
    
    1. 重绘背景颜色: 如果你已经在创建Canvas对象之后绘制了线条并且覆盖了原来的背景颜色,你可以使用create_rectangle方法来绘制一个与Canvas大小相同的矩形,并将其放置在所有其他绘图对象之后。这样可以在画线之后重新绘制背景颜色。
    pen=tk.Canvas(plat)
    pen.create_rectangle(0, 0, pen.winfo_width(), pen.winfo_height(), fill='white')  # 重新绘制背景颜色
    pen.create_line(50, 50, 700-50, 50, fill='black')
    pen.pack()
    

    希望以上解决方案对你有帮助。如有更多问题,请随时提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 3月28日