带有Kivy图像的动态按钮

2024-09-30 16:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

我有一个圆形图像的按钮,比例为1:1,当我运行代码时(在底部),程序会创建一个比例相同的屏幕,但是我可以调整它的大小,改变比例和大小,但是图像不会随着屏幕的增长而增长,所以它会随着屏幕的增长而使用更少的空间。我试图设置size_hint:的值,但它扭曲了图像,只占一个比例。我怎样才能使这个按钮适应任何比例和大小,不失真,空间与屏幕大小成比例?在

生成屏幕(1:1)

Generated Screen

调整屏幕大小(16:9)

Resized Screen

代码

import kivy
kivy.require('1.9.0')

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image

class FloatingApp(App):

    def build(self):
        return FloatLayout()

flApp = FloatingApp()

flApp.run()

.kv文件

^{2}$

Tags: 代码from图像importapp屏幕空间圆形
1条回答
网友
1楼 · 发布于 2024-09-30 16:28:17

您可以将kv文件中Botao的大小设置为root.size的函数。通过使用min(root.size)。您还必须删除size: 138, 138行。在

<Botao@Button>:
    font_size: 32
    color: 1, 1, 1, 1
    #size: 138, 138
    background_normal: 'bd.png'
    background_down: 'bd1.png'
    background_color: 0.88, 0.88, 0.88, 1  
    size_hint: None, None

<FloatLayout>:
    Botao:
        size: (min(root.size)*0.5, min(root.size)*0.5)
        text:"Botao"
        pos_hint: {"center_x": .5, "center_y": .5}

相关问题 更多 >