python - 如何将多个 MDSwiperItem 添加到 MDSwiper:]?
问题描述
我是 kivymd 的新手,所以我正在努力修复错误,所以我尝试使用 for 循环添加多个小部件,但每次我这样做都会出错,所以我尝试添加多个 MDSwiperItem MDswiper 。所以我将展示一个我正在尝试做的例子..
主文件
:
MDScreen:
name: "scrn_swiper"
MDToolbar:
id: swiper_bar
title: "Title"
elevation: 10
pos_hint: {"top":1}
MDSwiper:
id: id_swiper
size_hint_y: None
height: root.height - swiper_bar.height - dp(20)
:
MDBoxLayout:
orientation: "vertical"
padding: 20
spacing: 20
canvas.before:
Color:
rgba: [0,1,1,1]
RoundedRectangle:
pos: self.pos
size: self.size
radius: [15,15,15,15]
MDToolbar:
title: "Title"
halign: "center"
elevation: 10
BoxLayout:
orientation: "vertical"
size_hint_y: .08
padding: 25
spacing: 10
canvas.before:
Color:
rgba: rgba('#5599ffff')
RoundedRectangle:
size: [self.size[0],(70)+self.size[1]]
pos: self.pos
radius: [10,10]
MDLabel:
id: car_id
text: "text..."
pos_hint: {"center_x":.5, "center_y":.5}
font_size: 16
文件.py
类 SwiperCar(MDSwiperItem):
def __init__(self,**kw):
super().__init__(**kw)
def return_car(self,a):
self.ids.car_id.text = str(a)
return self.ids.car_id.text
类主窗口(MDApp):
def __init__(self,**kw):
super().__init__(**kw)
def Multiple_SwiperI(self):
is = self.ids.id_swiper
a = ["car1", "car2", "car3"]
for i in a:
sw = SwiperCar()
sw.return_car(i)
is.add_widget(sw)
错误:
文件“C:\Users\TOSHIBA\AppData\Local\Programs\Python\Python37\lib\site-packages\kivy\app.py”,第 949 行,运行 self._run_prepare() 文件“C:\Users\TOSHIBA \AppData\Local\Programs\Python\Python37\lib\site-packages\kivy\app.py”,第 919 行,在run_prepare root = self.build() 文件“C:\Users\TOSHIBA\OneDrive\Escritorio\finalproject1 .2\quiz\app_home\app_init .py ”,第 6 行,在构建中返回 MainWindow() 文件“C:\Users\TOSHIBA\OneDrive\Escritorio\finalproject1.2\quiz\app_home\app\view.py”,第 298 行,在初始化中 self.show_to_fav() 文件“C:\Users\TOSHIBA\OneDrive\Escritorio\finalproject1.2\quiz\app_home\app\view.py”,第 453 行,在 show_to_fav zi.add_widget(sw) 文件“C:\Users \TOSHIBA\AppData\Local\Programs\Python\Python37\lib\site-packages\kivymd\uix\swiper.py”,第 405 行,在 add_widget items_box.add_widget(widget) 文件“C:\Users\TOSHIBA\AppData\ Local\Programs\Python\Python37\lib\site-packages\kivy\uix\layout.py”,第 97 行,在 add_widget 返回 super(Layout, self).add_widget(widget, index, canvas) 文件“C:\Users \TOSHIBA\AppData\Local\Programs\Python\Python37\lib\site-packages\kivy\uix\widget.py",第 619 行,在 add_widget % (widget, parent)) kivy.uix.widget.WidgetException: 无法添加<app.view.SwiperQuestions 对象位于 0x00000175AADFB978>,它已经有一个父 <kivymd.uix.swiper。_ItemsBox 对象位于 0x00000175AAEB0F28>
解决方案
推荐阅读
- html - 输入框灰色文本
- javascript - 如何在引导工具提示中创建跨度元素
- javascript - 猫头鹰旋转木马没有响应
- android - 如何为实时数据库设置安全规则,但允许注册新用户并创建哈希图?
- django - Django 模型的 OneToOne 关系 - AttributeError: object has no attribute
- excel - 是否存在通过引用传递元素的列表或数组?
- javascript - 如何从在 Android WebView 中打开的网页中单击按钮
- selector - 如何在 webdriver io 的选择器中使用变量
- jquery - Jquery 链接多个值
- amazon-web-services - 使用带有嵌套 for 循环的 terraform 的安全组