gpt4 book ai didi

python - 带有 Kivy 图像的动态按钮

转载 作者:行者123 更新时间:2023-12-01 08:36:01 25 4
gpt4 key购买 nike

问题

我有一个带有比例为 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 文件

<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:

text:"Botao"
pos_hint: {"center_x": .5, "center_y": .5}

最佳答案

您可以在 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}

关于python - 带有 Kivy 图像的动态按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53718055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com