Я хотел бы создать виджет с фиксированным размером и фоном. Он должен быть добавлен первым в BoxLayout. Я хотел бы нарисовать линию внутри этого виджета, чтобы он был виден только в нем и размещен по отношению к нему. Вводя (0,0) положение строки, я имею в виду начало виджета, а не все окно приложения. Как добиться этого эффекта?
from random import random
from kivy.app import App
from kivy.graphics import Color, Ellipse, Line
from kivy.uix.button import Button
from kivy.uix.widget import Widget
class CombWidget(Widget):
pass
class MyPaintWidget(Widget):
def __init__(self, **kwargs):
super(MyPaintWidget, self).__init__(**kwargs)
class MyPaintApp(App):
def build(self):
return CombWidget()
if __name__ == '__main__':
MyPaintApp().run()
и файл kv
<CombWidget>:
BoxLayout:
orientation: 'vertical'
size: root.size
padding: 20
spacing: 50
MyPaintWidget:
size: 400, 400
size_hint: 400, 400
canvas.before:
Color:
rgba: 1, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
canvas:
Color:
rgba: 0, 0, 0, 1
Line:
points: 0, 0, 200, 200
Button:
text: "Hallo"
Button:
text: "Hallo 1"
Button:
text: "Hallo 2"
Прямо сейчас у меня есть что-то вроде этого: ![enter image description here](https://i.stack.imgur.com/ynxVQ.png)
Но я хотел бы получить что-то вроде этого: ![enter image description here](https://i.stack.imgur.com/nIYgM.png)
Я хотел бы иметь возможность рисовать только в этом виджете и указывать позиции нарисованных элементов по отношению к нему.