Hej,
zaczynam uczyć się pythona z wykorzystaniem biblioteki kivy. Mam jednak problem.
Chciałbym utworzyć widżet o ustalonym rozmiarze i tle. Będzie dodany jako pierwszy w BoxLayout. Chciałbym narysować linię wewnątrz tego widżetu, aby była widoczna tylko w nim i umieszczona względem niego. Podając (0,0) pozycję linii mam na myśli początek widżetu, a nie całe okno aplikacji. Jak osiągnąć ten efekt?
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()
i plik 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"
Teraz mam coś takiego:
A chciałbym takie coś:
Możecie mi pomóc poprawić ten kod? To jest zlepek z tutoriali ale nie mam pojęcia jak ruszyć dalej ;)