首页 > 解决方案 > 如何将多个 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>

标签: pythonpython-3.xkivykivy-languagekivymd

解决方案


推荐阅读