Python Tkinter | Create different type of lines using Canvas class (original) (raw)

Last Updated : 02 Nov, 2021

In Tkinter, Canvas.create_line() method is used to create lines in any canvas. These lines can only be seen on canvas so first, you need to create a Canvas object and later pack it into the main window.

Syntax:

Canvas.create_line(x1, y1, x2, y2, ...., options = ...)

Note: Minimum of 4 points are required to create a line, but you can also add multiple points to create different drawings.
Class parameters:

Data members used:
master
canvas
Member functions used for the given class: create() method
Widgets used: Canvas
Tkinter method used:
canvas.create_line()
pack()
title()
geometry()

Below is the Python code -

Python3 `

Imports each and every method and class

of module tkinter and tkinter.ttk

from tkinter import * from tkinter.ttk import *

class GFG: def init(self, master = None): self.master = master

    # Calls create method of class GFG
    self.create()

def create(self):

    # This creates a object of class canvas
    self.canvas = Canvas(self.master)

    # This creates a line of length 200 (straight horizontal line)
    self.canvas.create_line(15, 25, 200, 25)

    # This creates a lines of 300 (straight vertical dashed line)
    self.canvas.create_line(300, 35, 300, 200, dash = (5, 2))
    
    # This creates a triangle (triangle can be created by other methods also)
    self.canvas.create_line(55, 85, 155, 85, 105, 180, 55, 85)
    
    # This pack the canvas to the main window and make it expandable
    self.canvas.pack(fill = BOTH, expand = True)

if name == "main":

# object of class Tk, responsible for creating
# a tkinter toplevel window
master = Tk()
geeks = GFG(master)

# This sets the title to Lines
master.title("Lines")

# This sets the geometry and position of window
# on the screen
master.geometry("400x250 + 300 + 300")

# Infinite loop breaks only by interrupt
master.mainloop()

`

Output:

Example 2: For filing color in the shapes.

Python3 `

from tkinter import * root=Tk() root.title("canvas line") root.geometry("555x555") our_canvas=Canvas(root,width=300,height=200,bg="white") our_canvas.pack() #creating rectangle our_canvas.create_rectangle(50,150,250,50,fill="blue") root.mainloop()

`

Output: