它又是我:) 我继续我的游戏项目。我在这件事上陷入困境(作为我的初学者): 我有一个表(4个列表,每个列表包含4个元素。虽然长度很灵活,但这只是问题的一个简单示例)。 所以这是我的代码:
from tkinter import*
l=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
n=len(l) #this is the length of the list l
lngt=400/len(l) #this is the dimension of the squares that I want
fen=Tk()
fen.geometry("600x400")
#I would like to create a table of 4 rows on canvas
#each row should contain 4 squares
can=Canvas(fen,width=450,height=400,bg="lightblue")
can.pack(side=LEFT)
for i in range(n):
can.create_rectangle(n, i*(lngt) ,n+lngt, i*n+(i+1)*lngt, fill="red")
f=Frame(fen,width=150,height=400,bg="lightcoral")
f.pack(side=LEFT)
fen.mainloop()
截至目前,我只在画布的左侧获得了一个4列的列。我的所有试验都未能创造出其他12个方格。
谢谢你真棒的人!!
答案 0 :(得分:1)
以下是如何在画布上绘制方形正方形网格。
import tkinter as tk
l = [[0,0,0,0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
n = len(l) #this is the length of the list l
lngt = 400 // n #this is the dimension of the squares that I want
fen = tk.Tk()
fen.geometry("600x400")
#I would like to create a table of 4 rows on canvas
#each row should contain 4 squares
can = tk.Canvas(fen, width=450, height=400, bg="lightblue")
can.pack(side=tk.LEFT)
for i in range(n):
y = i * lngt
for j in range(n):
x = j * lngt
can.create_rectangle(x, y, x+lngt, y+lngt, fill="red")
f = tk.Frame(fen, width=150, height=400, bg="lightcoral")
f.pack(side=tk.LEFT)
fen.mainloop()