Динамические кнопки с изображениями с Kivy - PullRequest
0 голосов
/ 11 декабря 2018

Проблема

У меня есть кнопка с круглым изображением с соотношением 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}

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете установить размер вашего 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...