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)
должен сделать это.
Редактировать: если это не помогло, в этой строке возникает точное исключение