Python 2.7 如何在python中的tkinter上创建网格?

Python 2.7 如何在python中的tkinter上创建网格?,python-2.7,tkinter,Python 2.7,Tkinter,我设法创建了一个具有给定半径、起点和若干点的函数。它将创建一个大圆圈,并用这个圆圈创建4个小圆圈。 我想在背景上添加一个网格,从左上角开始每隔100个像素显示Y轴和X轴。坐标原点应位于左上角。 例如,如果屏幕为300x300,则窗口的X轴上将有3条线(在100、200和300处),从左到右,从上到下。 作为坐标系的网格 创建法线的示例。我使用了一个line类,它包含两个点:起点和终点: rootWindow = Tkinter.Tk() rootFrame = Tkinter.Frame(roo

我设法创建了一个具有给定半径、起点和若干点的函数。它将创建一个大圆圈,并用这个圆圈创建4个小圆圈。 我想在背景上添加一个网格,从左上角开始每隔100个像素显示Y轴和X轴。坐标原点应位于左上角。 例如,如果屏幕为300x300,则窗口的X轴上将有3条线(在100、200和300处),从左到右,从上到下。 作为坐标系的网格

创建法线的示例。我使用了一个line类,它包含两个点:起点和终点:

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

这将在画布上为您创建一个网格

import tkinter as tk

def 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()
将tkinter作为tk导入
def创建网格(事件=无):
w=c.winfo_width()#获取画布的当前宽度
h=c.winfo_height()#获取画布的当前高度
c、 删除(“网格线”)只会删除网格线
#以100为单位创建所有垂直线
对于范围(0,w,100)内的i:
c、 创建网格线([(i,0),(i,h)],tag='grid\u line')
#以100为单位创建所有水平线
对于范围(0,h,100)内的i:
c、 创建网格线([(0,i),(w,i)],tag='grid\u line')
root=tk.tk()
c=tk.Canvas(根,高度=1000,宽度=1000,bg='white')
c、 包装(填充=tk.BOTH,展开=True)
c、 绑定(“”,创建网格)
root.mainloop()

这将在画布上为您创建一个网格

import tkinter as tk

def 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()
将tkinter作为tk导入
def创建网格(事件=无):
w=c.winfo_width()#获取画布的当前宽度
h=c.winfo_height()#获取画布的当前高度
c、 删除(“网格线”)只会删除网格线
#以100为单位创建所有垂直线
对于范围(0,w,100)内的i:
c、 创建网格线([(i,0),(i,h)],tag='grid\u line')
#以100为单位创建所有水平线
对于范围(0,h,100)内的i:
c、 创建网格线([(0,i),(w,i)],tag='grid\u line')
root=tk.tk()
c=tk.Canvas(根,高度=1000,宽度=1000,bg='white')
c、 包装(填充=tk.BOTH,展开=True)
c、 绑定(“”,创建网格)
root.mainloop()

您正在努力解决问题的哪一部分?听起来你好像知道如何画圆圈。你知道怎么画线吗?你知道如何创建一个以100为增量跳跃的循环吗?是的,我知道如何创建一条直线[或者至少我有一个我认为我理解的例子]。但在创建栅格时,栅格线与普通线不同。线断了。我的意思是,它不是-,而是-,请给出一个这样做的代码示例。我们无法修复看不到的代码。@BryanOakley无法在注释中正常显示代码,因此我在主要问题帖子中对其进行了编辑。该代码不会以帖子的形式运行——有几个缩进错误。另外,它只画了一条线,而不是一个网格。你在努力解决问题的哪一部分?听起来你好像知道如何画圆圈。你知道怎么画线吗?你知道如何创建一个以100为增量跳跃的循环吗?是的,我知道如何创建一条直线[或者至少我有一个我认为我理解的例子]。但在创建栅格时,栅格线与普通线不同。线断了。我的意思是,它不是-,而是-,请给出一个这样做的代码示例。我们无法修复看不到的代码。@BryanOakley无法在注释中正常显示代码,因此我在主要问题帖子中对其进行了编辑。该代码不会以帖子的形式运行——有几个缩进错误。另外,它只画了一条线,没有网格。