【问题标题】:Creating a background made of rectangles with tkinter?用 tkinter 创建由矩形组成的背景?
【发布时间】:2020-04-24 16:49:57
【问题描述】:

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

我试图用两个设计糟糕的循环制作一个二维数组,并为每个像素创建一个矩形。问题是我在相当长的一段时间后得到了一个黑屏,我猜它是由几个黑色矩形组成的。也许我的带有所选颜色的变量在 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()

【问题讨论】:

  • 给我画一张随机的照片:阅读module random - Functions for sequences
  • 我没有明确我的实际问题:我得到一个黑屏,我猜是由几个黑色矩形组成的。我将编辑我的帖子以使其更清晰。您发送给我的内容可以改进我的代码,但我认为问题不在于这部分有效,我已经通过打印字符串在控制台中进行了尝试。也许 tkinter 不能很好地识别作为字符串选择的颜色?无论如何,谢谢你的时间!!
  • 我认为一个像素的矩形是不可能的
  • @stovfl:不正确。您可以创建一个单像素矩形。

标签: python python-3.x tkinter multidimensional-array tkinter-canvas


【解决方案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)

【讨论】:

  • 我完全忘记了大纲!非常感谢,我试试这个:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多