Как создать вложенные виджеты, такие как MDCard, содержащие внутри себя другие виджеты?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как создать вложенные виджеты, такие как MDCard, содержащие внутри себя другие виджеты?

Сообщение Anonymous »

Я новичок в программировании. Я был бы очень признателен за помощь в этом вопросе. Я перепробовал множество вещей и поискал в Интернете помощь по этому вопросу. Я попробовал немало вещей, основанных на проблемах/решениях других людей, но ничего не помогло мне. Пожалуйста, я изо всех сил пытаюсь понять это.
Я создаю приложение, которое должно брать записи из таблицы базы данных и заполнять 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()
Чтобы внедрить MDcard в ScrollView, я попробовал:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»