Kivy size_hint (всплывающее окно) десятичная ошибка

Я вполне уверен, что неправильно использовал масштабирование экрана, но мой подход заключается в следующем:

У меня есть всплывающее окно, которое отображает информацию, высота которой может меняться в зависимости от количества строк, представленных пользователю. Поскольку я примерно знаю высоту в пикселях на строку (из-за знания размера шрифта), я увеличил i считая \nнаходится в сообщении, представляемом. Затем я разделил это на Window.height чтобы дать мне процент экрана, необходимого для правильного отображения информации.

Я знаю, что эта информация отображается правильно, когда я жестко код в значение, полученное из следующего уравнения;

    TwoDecPoints = Decimal(10) ** -2
    popupScale = (Decimal(i) / Decimal(Window.height)).quantize(TwoDecPoints)

Но когда я применяю popupScale (nn.nn) к popup"s size_hint;

    InformationScreen.ResultsPopup.size_hint = 0.95, popupScale

Я получаю эту ошибку;

    Popup.size_hint_y have an invalid format (got Decimal('0.25'))

Это ускользает от меня, потому что у меня есть 2 десятичных числа, 0.95 на что он никогда не жалуется. Я попытался использовать это как строку;

    InformationScreen.ResultsPopup.size_hint = 0.95, str(popupScale)

А также используя оригинал popupScale без quantizeи обрезка номера;

    popupScale = (Decimal(i) / Decimal(Window.height))
    InformationScreen.ResultsPopup.size_hint = 0.95, str(popupScale)[:4]

Ни одна из которых не работает.

Я просмотрел документацию о size_hint, но не смог найти никакой соответствующей информации для типа данных, который size_hint требует. Любая помощь будет принята с благодарностью. Спасибо

1 ответ

Решение

size_hint является ReferenceListProperty, кортеж size_hint_x а также size_hint_y, size_hint_x (соответственно size_hint_y) является NumericProperty, он принимает число с плавающей запятой или int. Так float(popupScale) должен сделать это.

Редактировать: если это не помогло, в этой строке возникает точное исключение

Другие вопросы по тегам