PysimpleGui - путаница с размером = (1, 1) и раскраской изображения в примере с шахматами - PullRequest
1 голос
/ 14 июня 2019

Я рассматриваю шахматный пример из примеров 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, который кажется? Однако, если я изменю размер, я не вижу никаких изменений. Я взял плитку станет больше?

Что касается окраски изображений, то кажется, что "пустые" плитки изначально черные, поэтому они становятся белыми, а затем к ним применяется доска "color" (коричневый) ..

Тем не менее, шахматные фигуры сохраняют свои цвета (белый или черный), несмотря на то, что эта функция применяется к ним также. Их фон меняется, но сами части не меняются. Чего мне не хватает?

Спасибо.

1 Ответ

1 голос
/ 14 июня 2019

Изменение цвета кнопки не изменит цвет изображения на кнопке. Это меняет цвет кнопки. Кнопки имеют 2 цвета, фон и текст.

Если вы хотите изменить цвет изображения, вам понадобится что-то вроде PIL.

Вы можете изменить размер изображения, но не «цвет», используя элемент Button. Опять же, документы являются ключевыми в понимании того, как это делается. Это не пиксельная спецификация, которую вы можете дать. Используется «Подвыборка», при котором изображение будет иметь размер 1/2, 1/3, 1/4, 1/5, ... того размера, в котором он был изначально.

...