Tkinter – How to create a grid on tkinter in python

python-2.7, tkinter

I managed to create a function that with a given radius, starting point and a number of points. It will create a big circle and withing this circle it will create 4 small circles.
I want to add a grid on the background that will show the Y and X axis in TKinter every 100 pixels apart starting from the top left. The coordinate origin should be the top left corner.
For example if the screen is 300×300 then the window will have 3 lines (at 100, 200 and 300) on his X axis going from left to right and top up to bottom.
A grid as a coordinate system.

Example of how I create a normal line. I use a line class which contains 2 points start point and end point:

rootWindow = Tkinter.Tk()rootFrame = Tkinter.Frame(rootWindow, width=1000, height=800, bg="white")rootFrame.pack()canvas = Tkinter.Canvas(rootFrame, width=1000, height=800, bg="white")canvas.pack() def draw_line(l):    "Draw a line with its two end points"    draw_point(l.p1)    draw_point(l.p2)    # now draw the line segment    x1 = l.p1.x    y1 = l.p1.y    x2 = l.p2.x    y2 = l.p2.y    id = canvas.create_line(x1, y1, x2, y2, width=2, fill="blue")    return id

Best Solution

This will create a grid on the canvas for you

import tkinter as tkdef create_grid(event=None):    w = c.winfo_width() # Get current width of canvas    h = c.winfo_height() # Get current height of canvas    c.delete('grid_line') # Will only remove the grid_line    # Creates all vertical lines at intevals of 100    for i in range(0, w, 100):        c.create_line([(i, 0), (i, h)], tag='grid_line')    # Creates all horizontal lines at intevals of 100    for i in range(0, h, 100):        c.create_line([(0, i), (w, i)], tag='grid_line')root = tk.Tk()c = tk.Canvas(root, height=1000, width=1000, bg='white')c.pack(fill=tk.BOTH, expand=True)c.bind('<Configure>', create_grid)root.mainloop()