Настройка ширины работает, потому что вы установили size_hint равным 0,45. Это условие используется для автоматического обновления фактической ширины изображения, когда FloatLayout изменяет ширину, а FloatLayout является корневым виджетом, поэтому его ширина автоматически отслеживает окно.
В отличие от этого, вы установили вертикальный size_hint равным None. Это явно означает, что не обновляет высоту при изменении высоты FloatLayout. Попробуйте вместо этого установить что-то вроде 0,5. Если это не то, что вам нужно, задайте другой вопрос о том, что вы хотите.
size: self.texture_size[1]
Это не сработает, поскольку size
ожидает кортеж (ширина, высота), но self.texture_size[1]
- этоодно значение с плавающей точкой. Я думаю, что это действительно приведет к сбою, это реальный пример?
Вы, вероятно, имели в виду height: self.texture_size[1]
, который устанавливает высоту изображения на фактическую высоту отображаемого изображения в пикселях. Но это явно не то, что вам нужно, поскольку вы хотите, чтобы его высота не была фиксированной, а вместо этого масштабировались с помощью окна.