为了账号安全,请及时绑定邮箱和手机立即绑定

带有 Kivy 图像的动态按钮

带有 Kivy 图像的动态按钮

阿波罗的战车 2021-09-14 10:27:14
问题我有一个比例为 1:1 的圆形图像按钮,当我运行代码(在底部)时,程序会创建一个具有相同比例的屏幕,但我可以调整它的大小,并更改比例和大小,但是图像不会随着屏幕的增长而增长,因此随着屏幕的增长它使用的空间更少。我试图为 设置值size_hint:,但它扭曲了图像,减少了单个比例。我怎样才能让这个按钮适应任何比例和大小,不失真并且空间与屏幕大小成正比?生成的屏幕 (1:1)调整大小的屏幕 (16:9)代码import kivykivy.require('1.9.0')from kivy.app import Appfrom kivy.uix.floatlayout import FloatLayoutfrom kivy.uix.image import Imageclass 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}
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

您可以设置的大小Botao在你的kv文件的功能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}


查看完整回答
反对 回复 2021-09-14
  • 1 回答
  • 0 关注
  • 334 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信