PysimpleGui - путаница с размером = (1, 1) и раскраской изображения в примере Chess

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

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

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

Спасибо.


person MasayoMusic    schedule 14.06.2019    source источник
comment
Полистайте документы. Размеры обычно являются символами в PySimpleGUI. В этом случае размер кнопки не имеет значения, потому что на нее помещается изображение. В документации вы найдете информацию о размере изображений на кнопках - pysimplegui.readthedocs. io / en / latest / # button-element. Вы также можете задать подобные вопросы на сайте проекта GitHub.   -  person Mike from PSG    schedule 14.06.2019


Ответы (1)


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

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

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

person Mike from PSG    schedule 14.06.2019