Kivy size_hint (弹出)小数错误
Kivy size_hint (popup) decimal error
我很确定我的屏幕缩放不正确,但我的方法如下:
我有一个显示信息的弹出窗口,其高度可能会发生变化,具体取决于呈现给用户的行数。因为我大致知道每行的像素高度(由于知道字体大小),所以我增加了 i
来计算所显示消息中的 \n
。然后我将其除以 Window.height
得到正确显示信息所需的屏幕百分比。
当我硬编码由以下等式得出的值时,我知道此信息可以正确显示;
TwoDecPoints = Decimal(10) ** -2
popupScale = (Decimal(i) / Decimal(Window.height)).quantize(TwoDecPoints)
但是当我将 popupScale
(nn.nn) 应用于 popup
的 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
所需的数据类型相关的信息。任何帮助将不胜感激。谢谢
size_hint
是一个 ReferenceListProperty,size_hint_x
和 size_hint_y
的元组。
size_hint_x
(resp size_hint_y
) 是一个 NumericProperty 它需要一个浮点数或一个整数。所以 float(popupScale)
应该这样做。
编辑:如果这没有帮助,则会在此 line
中引发确切的异常
我很确定我的屏幕缩放不正确,但我的方法如下:
我有一个显示信息的弹出窗口,其高度可能会发生变化,具体取决于呈现给用户的行数。因为我大致知道每行的像素高度(由于知道字体大小),所以我增加了 i
来计算所显示消息中的 \n
。然后我将其除以 Window.height
得到正确显示信息所需的屏幕百分比。
当我硬编码由以下等式得出的值时,我知道此信息可以正确显示;
TwoDecPoints = Decimal(10) ** -2
popupScale = (Decimal(i) / Decimal(Window.height)).quantize(TwoDecPoints)
但是当我将 popupScale
(nn.nn) 应用于 popup
的 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
所需的数据类型相关的信息。任何帮助将不胜感激。谢谢
size_hint
是一个 ReferenceListProperty,size_hint_x
和 size_hint_y
的元组。
size_hint_x
(resp size_hint_y
) 是一个 NumericProperty 它需要一个浮点数或一个整数。所以 float(popupScale)
应该这样做。
编辑:如果这没有帮助,则会在此 line
中引发确切的异常