如何保持Kivy应用在调整大小时的比例和界面外观

0 投票
1 回答
33 浏览
提问于 2025-04-13 17:34

我基本上想要的是,无论kivy应用窗口的大小怎么变化,比例和关系都能保持一致,这样我就能确保电脑和手机用户看到的界面是一样的。

我还是个初学者,所以对kivy的使用还不太了解……

这个kv代码是 `<input_field>: text_field:text_field space:space`。

RelativeLayout:
    # Image at the bottom (adjust based on your image size)
    Image:
        id: space
        source: "text place.png"  
        pos_hint: {"bottom": 0}  # Position
        size_hint_y: 1
        size_hint_x: 1
        pos_hint: {"center_x": 0.5, "center_y": 0.68} #Position in the center

    # TransparentTextInput positioned on top of the image
    TransparentTextInput:
        id: text_field
        text: "Username"
        on_focus: text_field.text = "" if text_field.text == text_field.text else text_field.text
        on_text: text_field.text = "" if text_field.text == "" else text_field.text  
        multiline: False  
        pos_hint: {"center_x": 0.6, "center_y": 0.22}  # Position in the center of the image
        font_size: 50
        foreground_color: [1, 1, 1, 0.7]

当我把整个设置作为一个小部件添加进去时,图片的大小会随着窗口的变化而改变,而文本的大小却没有变化,这导致文本不再位于图片的中间,并且文本的大小对图片来说太大了。

1 个回答

0

当你使用提示来调整小部件的大小时,这些小部件会随着窗口的大小而变化。但是,文本的大小不会跟着变化。你可以通过编程的方式来改变字体大小,或者在处理带有文本的项目时使用固定的小部件大小。

另外,kivy.metrics这个工具很有用,它可以确保在不同的平台和屏幕分辨率下,大小相同的对象看起来都是一样大的。你可以在这里找到更多信息:https://kivy.org/doc/stable/api-kivy.metrics.html#module-kivy.metrics

撰写回答