使用 tkinter 创建由矩形组成的背景?
Creating a background made of rectangles with tkinter?
我一直在尝试创建一个程序,用 tkinter 为我绘制一张由填充矩形组成的随机图片。我想用一组灰色细微差别来测试它,为此我制作了一个包含 13 个十六进制字符串的列表,这些字符串将在绘图期间在 tkinter canvas.
上随机调用
我试图用两个设计糟糕的循环制作一个二维数组,并为每个像素创建一个矩形。问题是,经过相当长的时间后,我得到了一个黑屏,我猜它是由几个黑色矩形组成的。也许我携带所选颜色的变量在 color='...' 事物中不是 tkinter 的正确类型。
我把代码放在这里是为了让它不稳定,对不起我的英语 ;)
root=Tk()
colorlist = ['#000000', '#111111', '#222222', '#333333', '#444444', '#555555', '#666666', '#777777', '#888888', '#999999', '#bfbfbf', '#dedede', '#ffffff']
canevas = Canvas(root, width=1920, height=1080)
canevas.pack()
for i in range(1920):
for j in range(1080):
ind = randint(0, 12)
ccolor = colorlist[ind]
canevas.create_rectangle(i, j, i+1, j+1, fill=ccolor)
root.mainloop()
矩形的轮廓默认为黑色。如果您尝试创建一个单像素矩形,则需要使用 width
选项将轮廓宽度设置为零。否则,您将在一个像素的矩形中看到的只是一个像素的轮廓。
canevas.create_rectangle(i, j, i+1, j+1, fill=ccolor, width=0)
顺便说一下,您可以使用 random.choice
.
而不是计算颜色的索引
import random
...
ccolor = random.choice(colorlist)
canevas.create_rectangle(i, j, i+1, j+1, fill=ccolor, width=0)
我一直在尝试创建一个程序,用 tkinter 为我绘制一张由填充矩形组成的随机图片。我想用一组灰色细微差别来测试它,为此我制作了一个包含 13 个十六进制字符串的列表,这些字符串将在绘图期间在 tkinter canvas.
上随机调用我试图用两个设计糟糕的循环制作一个二维数组,并为每个像素创建一个矩形。问题是,经过相当长的时间后,我得到了一个黑屏,我猜它是由几个黑色矩形组成的。也许我携带所选颜色的变量在 color='...' 事物中不是 tkinter 的正确类型。
我把代码放在这里是为了让它不稳定,对不起我的英语 ;)
root=Tk()
colorlist = ['#000000', '#111111', '#222222', '#333333', '#444444', '#555555', '#666666', '#777777', '#888888', '#999999', '#bfbfbf', '#dedede', '#ffffff']
canevas = Canvas(root, width=1920, height=1080)
canevas.pack()
for i in range(1920):
for j in range(1080):
ind = randint(0, 12)
ccolor = colorlist[ind]
canevas.create_rectangle(i, j, i+1, j+1, fill=ccolor)
root.mainloop()
矩形的轮廓默认为黑色。如果您尝试创建一个单像素矩形,则需要使用 width
选项将轮廓宽度设置为零。否则,您将在一个像素的矩形中看到的只是一个像素的轮廓。
canevas.create_rectangle(i, j, i+1, j+1, fill=ccolor, width=0)
顺便说一下,您可以使用 random.choice
.
import random
...
ccolor = random.choice(colorlist)
canevas.create_rectangle(i, j, i+1, j+1, fill=ccolor, width=0)