1

我正在浏览 PysimpleGui 示例中的国际象棋示例,我对这部分感到困惑:

def render_square(image, key, location):
    if (location[0] + location[1]) % 2:
        color =  '#B58863'
    else:
        color = '#F0D9B5'
    return sg.RButton('', image_filename=image, size=(1, 1), button_color=("white", color), pad=(0, 0), key=key)

这里的大小(1,1)代表它看起来的image_size?但是,如果我更改大小,我看不到任何更改。我以为瓷砖会变大?

至于图像的着色,似乎“空白”瓷砖原本是黑色的,所以它们变成了白色,然后将板“颜色”(棕色)应用于它们。

然而,棋子保留了它们的颜色(白色或黑色),尽管也应用了此功能。他们的背景在改变,但作品本身并没有改变。我错过了什么?

谢谢你。

4

1 回答 1

1

更改按钮的颜色不会改变按钮上图像的颜色。它改变了按钮的颜色。按钮有 2 种颜色,背景和文本。

如果你想改变图像颜色,那么你需要像 PIL 这样的东西来做到这一点。

您可以使用按钮元素更改图像的大小,但不能更改“颜色”。同样,文档是理解如何完成的关键。这不是您可以提供的像素规格。使用“子样本”将使图像变为原来的大小的 1/2、1/3、1/4、1/5、...。

于 2019-06-14T19:54:07.447 回答