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: