1

我很确定我错误地进行了屏幕缩放,但我的方法如下:

我有一个显示信息的弹出窗口,其高度可能会改变,具体取决于呈现给用户的行数。因为我大致知道每行的像素高度(由于知道字体大小),所以我增加了对正在呈现的消息中i的 's 的计数。\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。任何帮助将不胜感激。谢谢

4

1 回答 1

3

size_hint是一个ReferenceListProperty,一个size_hint_x和的元组size_hint_ysize_hint_x(resp size_hint_y) 是一个NumericProperty,它需要一个浮点数或一个整数。所以float(popupScale)应该这样做。

编辑:如果这没有帮助,则在此行中引发确切的异常

于 2016-03-30T11:54:22.713 回答