如何向MDSwiper:]添加多个MDSwiperItem?

2024-09-29 23:33:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我是kivymd的新手,所以我正在努力修复这个bug,所以我尝试使用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

file.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.\u run\u prepare() 文件“C:\Users\TOSHIBA\AppData\Local\Programs\Python\Python37\lib\site packages\kivy\app.py”,第919行,在运行 root=self.build() 文件“C:\Users\TOSHIBA\OneDrive\Escritorio\finalproject1.2\quick\app\u home\app\uem>init.py”,第6行,内部版本 返回主窗口() 文件“C:\Users\TOSHIBA\OneDrive\Escritorio\finalproject1.2\quick\app\u home\app\view.py”,第298行,位于init self.show_to_fav() 文件“C:\Users\TOSHIBA\OneDrive\Escritorio\finalproject1.2\quick\app\u home\app\view.py”,第453行,在show\u to\u fav中 zi.add_小部件(sw) 文件“C:\Users\TOSHIBA\AppData\Local\Programs\Python\Python37\lib\site packages\kivymd\uix\swiper.py”,第405行,在add\u小部件中 项目\框。添加\小部件(小部件) 文件“C:\Users\TOSHIBA\AppData\Local\Programs\Python\Python37\lib\site packages\kivy\uix\layout.py”,第97行,在add\u小部件中 返回超级(布局,自我)。添加_小部件(小部件,索引,画布) 文件“C:\Users\TOSHIBA\AppData\Local\Programs\Python\37\lib\site packages\kivy\uix\widget.py”,第619行,在add\u小部件中 %(小部件,家长) kivy.uix.widget.WidgetException:无法添加<;app.view.SwiperQuestions对象位于0x00000175AADFB978>;,它已经有一个父级<;kivymd.uix.swiper._ItemsBox对象位于0x00000175AAEB0F28>


Tags: 文件pyposselfaddidappsize

热门问题