Hejka ,
w tytule mam canvas , bo sam probowalem obejsc inny problem a natknolem sie na nowy , czyli zadam pytanie o dwa
- canvas
mam clase :
class Rama1(Widget):
def __init__(self,x,y,szer,wys):
self.x=x
self.y=y
self.szer=szer
self.wys=wys
super().__init__()
with self.canvas:
Color(1,0,0)
Line(rectangle=(self.x,self.y,self.width,self.height))
nie mam zadnego wywolania w pliku kv, tylko z pythona
self.add_widget(F.Rama1(100,100,100,500))
no i rysuje mi czerwony kwadracik , o stalych wymiarach , a jak moglbym odniesc sie do wielkosci okna rodzica, tak zeby kwadrat zmienial sie gdy rozciagne okno, bo wywolanie jest w screen
class MieszkanieWindow(Screen):
...
def on_enter(self, *args):
...
self.add_widget(F.Rama1(100,100,100,500))
-
error
sam probowalem sie troche bawic i mam pewien error, tu bedzie mi ciezej wytlumaczyc , ale sprubuje
w pyhonie:
class RamaOpis(Label):
passw kv mam (jakos formatu tekstu na kod nie moge zmienic t tym moim zapytaniu)
<RamaOpis>:
wys: 1
szer: 1
kF: 0,1,0,1
kB: 1,0,0,0.5
tS:20color: root.kF font_size: root.tS wysY:root.height+((root.wys-0.5)*root.height) dolY:root.y-(root.wys*root.height) szerX:root.szer*root.width canvas.before: Color: rgba: root.kF Line: # --- adds a border --- # width: 1 rectangle: root.x-1, root.dolY, root.szerX, root.wysY Color: rgba: root.kB Rectangle: size: self.size pos: self.pos
rysuje ramke, w gornym lewym rogu wstawia text ( taka funkcja ktora mi sie juz nie podoba no ale od tego zaczolem , ale problemy chcialbym rozwiazac)
self.add_widget(F.RamaOpis(pos_hint={'x':0.35,'y':0.74},text='Mieszkanie',size_hint=[0.1,0.198],kB =BlB,tS=20,wys=3,szer=3))
no i zauwazylem ze w niektorych screenach to mi dziala a w innych nie.
pisze ze:
TypeError: Properties ['kB', 'tS1'szer', 'wys''] passed to init may not be existing property names. Valid properties are......
problem rozwiazuje w ten sposob ze w kv :
### inicjalizacja ramki ???? RamaOpis: text: "TTTTTTTTT" pos_hint: {"x": 1.1 , "y":1} size_hint: 0.1, 0.1
wywoluje te ramke, gdzies poza ekranem, no i bledu nie ma
No ale dlaczego on jest?