Я создаю приложение, которое должно брать записи из таблицы базы данных и заполнять MDCard полями из этой записи базы данных. Я постепенно дорабатываю эту функциональность, и сейчас я застрял на создании MDCard.
Это киви того, что я хочу создать, но я хочу выполнить это из Python функция. Вот, например, киви:
Код: Выделить всё
:
name:'View'
card_list:card_list
MDBoxLayout:
orientation:'vertical'
ScrollView:
size:self.size
GridLayout:
id: card_list
size_hint_y:None
height:self.minimum_height
width:self.minimum_width
cols:1
spacing:'20dp'
padding:'20dp'
MDCard:
orientation:'horizontal'
padding:'2dp'
size_hint:1,None
height:'140dp'
MDGridLayout:
rows:1
cols:3
MDGridLayout:
rows:4
cols:1
MDLabel:
text:"Task Title"
MDLabel:
text:"Task Description"
MDLabel:
text:"Budget"
MDLabel:
text:""
MDGridLayout:
rows:4
cols:1
MDLabel:
text:""
MDLabel:
text:""
MDLabel:
text:"Date Required"
MDLabel:
text:""
MDGridLayout:
rows:2
cols:1
MDIconButton:
icon:"bookmark-outline"
MDIconButton:
icon:"offer"
Button:
size_hint: (None, None)
size:"60dp","30dp"
pos_hint: {"center_x": 0.5,"center_y": 0.05 }
background_color: (1, 1, 1, 0)
text: "Refresh"
color:(0, 0, 0, 0.5)
on_release:
root.build_card()
Код: Выделить всё
class Task_Card(MDCard):
def __init__(self,**kwargs):
super(Task_Card,self).__init__(**kwargs)
self.orientation="horizontal"
self.padding="2dp"
self.size_hint=(1,None)
self.height='140dp'
self.inside=MDGridLayout()
self.inside.rows=4
self.inside.cols=1
self.inside.add_widget(MDLabel(text='Press'))
class ViewScreen(MDScreen,Task_Card):
def build_card(self):
for i in range(5):
self.ids.card_list.add_widget(self.Task_Card)
Traceback (последний вызов):
Файл ".\main.py", строка 144 , в
классе ViewScreen(MDScreen,Task_Card):
TypeError: невозможно создать согласованный порядок разрешения метода
(MRO) для баз Layout, BackgroundColorBehavior
Подробнее здесь: https://stackoverflow.com/questions/791 ... er-widgets