Это мой файл kv, в котором я создал собственный виджет и две корневых переменной: имя и дату в самом kv.
<Entry@Widget>:
name: ''
date: ''
size_hint: (None, None)
canvas.before:
Color:
rgba: 1, 1, 1, .4
Rectangle:
pos: self.pos
size: self.size
Color:
rgba: 0, 0, 0, 1
Label:
text: root.name[0:1]
color: 41/255, 128/255, 185/255, 1
pos: root.pos
font_size: sp(50)
Label:
text: root.name[1:]
color: 41/255, 128/255, 185/255, 1
pos: root.x+sp(80), root.y+sp(8)
font_size: sp(30)
Label:
text: root.date
color: 17/255, 80/255, 122/255, 1
pos: root.x+sp(50), root.y-sp(10)
font_size: 10
И еще одна вещь.Я ovveride on_touch_down событие виджета Entry, как показано ниже в коде Python:
class Entry(RelativeLayout):
def on_touch_down(self, touch):
super(Entry, self).on_touch_down(touch)
popup = Mypopup()
popup.open()
return True
Теперь на моем главном экране я динамически добавляю виджеты, поэтому я набрал код в Python, который выглядит примерно так: -
class MainScreen(FloatLayout):
def __init__(self, **kargs):
super(MainScreen, self).__init__(**kargs)
layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
layout.bind(minimum_height=layout.setter('height'))
for i in range(100):
entry = Entry(name='Facebook', date='30/21/2', size=(Window.width, sp(100)))
layout.add_widget(entry)
scroll = ScrollView(size_hint=(1, None), height=Window.height)
scroll.add_widget(layout)
self.add_widget(scroll)
но это дает мне ошибку, говорящую: -
File "C:\Users\Himanshu Pharawal\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\app.py", line 802, in run
root = self.build() File "main.py", line 47, in build
return MainScreen() File "main.py", line 38, in __init__
entry = Entry(name='Facebook', date='30/21/2', size=(Window.width, sp(100))) File "main.py", line 21, in __init__
super(Entry, self).__init__(*args, **kargs) File "C:\Users\Himanshu Pharawal\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\uix\relativelayout.py", line 265, in __init__
super(RelativeLayout, self).__init__(**kw) File "C:\Users\Himanshu Pharawal\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\uix\floatlayout.py", line 65, in __init__
super(FloatLayout, self).__init__(**kwargs) File "C:\Users\Himanshu Pharawal\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\uix\layout.py", line 76, in __init__
super(Layout, self).__init__(**kwargs) File "C:\Users\Himanshu Pharawal\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\uix\widget.py", line 337, in __init__
super(Widget, self).__init__(**kwargs) File "kivy\_event.pyx", line 254, in kivy._event.EventDispatcher.__init__ (kivy\_event.c:5332) TypeError: object.__init__() takes no parameters