带有 Kivy 图像的动态按钮

问题

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

生成的屏幕 (1:1)

http://img.mukewang.com/6140089d00010ce215970918.jpg

调整大小的屏幕 (16:9)


http://img1.mukewang.com/614008a50001486919190971.jpg

代码

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}


阿波罗的战车
浏览 335回答 1
1回答

呼唤远方

您可以设置的大小Botao在你的kv文件的功能root.size。通过使用min(root.size). 您还必须删除该size: 138, 138行。<Botao@Button>:&nbsp; &nbsp; font_size: 32&nbsp; &nbsp; color: 1, 1, 1, 1&nbsp; &nbsp; #size: 138, 138&nbsp; &nbsp; background_normal: 'bd.png'&nbsp; &nbsp; background_down: 'bd1.png'&nbsp; &nbsp; background_color: 0.88, 0.88, 0.88, 1&nbsp;&nbsp;&nbsp; &nbsp; size_hint: None, None<FloatLayout>:&nbsp; &nbsp; Botao:&nbsp; &nbsp; &nbsp; &nbsp; size: (min(root.size)*0.5, min(root.size)*0.5)&nbsp; &nbsp; &nbsp; &nbsp; text:"Botao"&nbsp; &nbsp; &nbsp; &nbsp; pos_hint: {"center_x": .5, "center_y": .5}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python