@Ander813

Как изменить фон widget'а в kivy?

В примерах дается нечто подобное, но что мне делать если я не указываю точное положение виджетов.
from kivy.graphics import *
with self.canvas:
    # Add a red color
    Color(1., 0, 0)

    # Add a rectangle
    Rectangle(pos=(10, 10), size=(500, 500))

Когда пробою использовать это:
with logo_background.canvas:
            Color(.29, .46, .66, 1)
            Rectangle(pos = logo_background.pos, size = logo_background.size)

он просто создает квадратик 100 на 100 в левом углу.
  • Вопрос задан
  • 1931 просмотр
Решения вопроса 1
@Ander813 Автор вопроса
Нашел как по мне очень костыльное решение
class LogoBackground(Label):
    def on_size(self, *args):
        self.canvas.before.clear()
        with self.canvas.before:
            Color(.29, .46, .66, 1)
            Rectangle(pos=self.pos, size=self.size)

logo = LogoBackground(text = "text", size_hint = (1, .05))

при этом, по идее, такой же вариант не работает(создает квадратик 100 на 100)
logo = Label(text = "Text", size_hint = (1, .05))
with logo.canvas.before:
    Color(.29, .46, .66, 1)
    Rectangle(pos=logo.pos, size=logo.size)

Может кто сможет обьяснить почему именно так или как сделать это менее убого.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы