我是编码新手。我非常感谢对此的帮助。我已经尝试了很多方法,并在互联网上寻求帮助。我根据其他人的问题/解决方案尝试了很多东西,但对我的需要没有任何帮助。拜托,我正绞尽脑汁地想弄清楚这一点。
我正在构建一个应用程序,它应该从数据库表中获取条目并使用该数据库条目中的字段填充MDCard。我正在逐步构建该功能,但现在我只能构建 MDCard。
这是我想要构建的核心,但我想从 python 函数执行它。以猕猴桃为例:
<ViewScreen>:
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)
我收到此错误:
回溯(最近一次调用最后一次): 文件“.\main.py”,第 144 行,位于 类 ViewScreen(MDScreen,Task_Card): 类型错误:无法创建一致的方法解析 基础布局、BackgroundColorBehavior 的顺序(MRO)
该错误是由于您的
ViewScreen
类同时扩展了 MDScreen
和 Task_Card
。不需要 ViewScreen
来扩展 Task_Card
。我相信您希望您的 ViewScreen
包含 Task_Cards
,而不是 Task_Card
。将该类定义更改为:
class ViewScreen(MDScreen):
请参阅此问题,了解与您的情况相关的讨论。