用tkinter创建一个由矩形组成的背景?

问题描述 投票:0回答:1

我一直在尝试用 tkinter 来创建一个程序,来绘制一个由填充矩形构成的随机图片。我想用一组灰色的细微差别进行测试,为此我做了一个包含13个十六进制字符串的列表,这些字符串将在绘制过程中随机调用,在tkinter画布上。

我试着用两个设计得很糟糕的循环来做一个二维数组,并为每个像素创建一个矩形。问题是,在相当长的时间后,我得到的是一个黑色的屏幕,我想是由几个黑色的矩形组成的。也许我的变量携带的颜色不符合tkinter的color='...'的类型。

我把代码放在这里,让它更容易理解。对不起,我的英语 ;)

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()
python python-3.x tkinter multidimensional-array tkinter-canvas
1个回答
1
投票

矩形有一个默认为黑色的轮廓。如果你想创建一个一像素的矩形,你需要用下面的命令将轮廓的宽度设置为零。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)
© www.soinside.com 2019 - 2024. All rights reserved.