0

我得到一个 IndexError: list index out of range我不知道的原因。每当我切换到项目中的某个屏幕时,我都会收到错误消息,虽然错误不会关闭程序,但错误消息只会继续运行。

如何解决这个问题?

这是我的 main.py 文件

from kivymd.app import MDApp
from kivy.uix.screenmanager import ScreenManager, Screen, NoTransition

from kivy.core.window import Window

Window.size = (300, 530)


class IntroScreen(Screen):
    pass


class SuccessScreen(Screen):
    pass


class SearchScreen(Screen):
    pass


class MenuScreen(Screen):
    pass


class GettingStartedScreen(Screen):
    pass


class ProjectApp(MDApp):
    def build(self):
        self.theme_cls.primary_palette = 'Gray'
        self.sm = ScreenManager(transition=NoTransition())
        self.sm.add_widget(IntroScreen(name="intro_screen"))
        self.sm.add_widget(GettingStartedScreen(name="getting_started_screen"))
        self.sm.add_widget(SuccessScreen(name="success_screen"))
        self.sm.add_widget(SearchScreen(name='search_screen'))
        self.sm.add_widget(MenuScreen(name="menu_screen"))

        return self.sm

    def change_screen(self, screen, *kwargs):
        self.sm.current = "intro_screen"
        self.sm.current = "getting_started_screen"
        self.sm.current = "success_screen"
        self.sm.current = "search_screen"
        self.sm.current = "menu_screen"
        self.sm.current = screen


ProjectApp().run()

这是我的 .kv 文件(请多多包涵,它有点笨重)

ScreenManager:

<IntroScreen>
    name: "intro_screen"

    BoxLayout:
        orientation: "vertical"
        md_bg_color: (240/255, 240/255, 240/255, 1)


        MDToolbar:
            id: intro_screen_toolbar
            title: "Studies"
            right_action_items: [["book-edit", lambda x: x]] 

        MDCard:
            orientation: 'vertical'
            padding: 16
            size_hint: None, None
            size: "280dp", "360dp"
            pos_hint: {"center_x": .5, "center_y": .6}
            height: root.height - intro_screen_toolbar.height - dp(90)
            y: root.height - intro_screen_toolbar.height - dp(50)
            elevation: 8
            orientation: 'vertical'
            radius: 15

            ScrollView:
                MDList:
                    OneLineIconListItem:
                        text: "WHAT IS KETO DIET"
                        IconLeftWidget:
                            icon: "cash-multiple"
                    OneLineIconListItem:
                        text: "WHY TRY KETO DIET"
                        IconLeftWidget:
                            icon: "cash-100"
                    OneLineIconListItem:
                        text: "IS KETO RIGHT FOR YOU"
                        IconLeftWidget:
                            icon: "cash-marker"
                    OneLineIconListItem:
                        text: "GETTING STARTED"
                        on_release:
                            app.root.current = "getting_started_screen"
                        IconLeftWidget:
                            icon: "cash"

        MDBottomAppBar:
            MDToolbar:
                icon: "plus"
                type: 'bottom'
                mode: 'center'
                elevation: 8
                left_action_items: [["calendar-text", lambda x: x], ["account-group", lambda x: app.change_screen("success_screen")]]
                right_action_items: [["magnify", lambda x: app.change_screen("search_screen")], ["menu", lambda x: app.change_screen("menu_screen")]]

<GettingStartedScreen>
    name: "getting_started_screen"

    FloatLayout:
        MDCard:
            orientation: 'vertical'
            padding: 16
            size_hint: None, None
            size: "280dp", "360dp"
            pos_hint: {"center_x": .5, "center_y": .6}
            elevation: 8
            orientation: 'vertical'
            radius: 15

            ScrollView:
                MDList:
                    OneLineIconListItem:
                        text: "WHAT TO KNOW BEFORE STARTING"
                        IconLeftWidget:
                            icon: "cash"
                    OneLineIconListItem:
                        text: "WHAT TO DO BEFORE STARTING"
                        IconLeftWidget:
                            icon: "cash"
                    OneLineIconListItem:
                        text: "HOW TO START THE KETO DIET"
                        IconLeftWidget:
                            icon: "cash"
                    OneLineIconListItem:
                        text: "FREQUENTLY ASKED QUESTIONS"
                        IconLeftWidget:
                            icon: "cash"


<MySwiper@MDSwiperItem>

<SuccessScreen>
    name: "success_screen"

    BoxLayout:
        orientation: "vertical"
        md_bg_color: (240/255, 240/255, 240/255, 1)

        MDToolbar:
            id: success_screen_toolbar
            title: "Success Stories"
            right_action_items: [["progress-check", lambda x: x]] #link to progress screen

        MDSwiper:
            size_hint_y: None
            height: root.height - success_screen_toolbar.height - dp(90)
            y: root.height - success_screen_toolbar.height - dp(50)

            MySwiper:
                FitImage:
                    source: "C:/Users/HP USER/Downloads/bella_baron.jpg"
                    radius: [20,]

            MySwiper:
                FitImage:
                    source: "C:/Users/HP USER/Downloads/bella_baron.jpg"
                    radius: [20,]

            MySwiper:
                FitImage:
                    source: "C:/Users/HP USER/Downloads/bella_baron.jpg"
                    radius: [20,]
    
        MDBottomAppBar:
           MDToolbar:
                id: success_screen_bottomappbar
                icon: "magnify"
                on_action_button: app.change_screen("search_screen") 
                type: 'bottom'
                mode: 'center'
                elevation: 8 #base on materialdesign.io
                left_action_items: [["calendar-text", lambda x: app.change_screen("intro_screen")], ["account-group", lambda x: x]]
                right_action_items: [["magnify", lambda x: app.change_screen("search_screen")], ["menu", lambda x: app.change_screen("menu_screen")]]


<SearchScreen>
    name: 'search_screen'

    FloatLayout:
        md_bg_color: (240/255, 240/255, 240/255, 1)

        MDBottomAppBar:
            MDToolbar:
                icon: "window-close"
                type: "bottom"
                mode: "center"
                left_action_items: [["calendar-text", lambda x: app.change_screen("intro_screen")], ["account-group", lambda x: app.change_screen("success_screen")]]
                right_action_items: [["magnify", lambda x: x], ["menu", lambda x: app.change_screen("menu_screen")]]

        MDTextField:
            mode: "fill"
            hint_text: "Search"
            pos_hint: {"center_x": .5,"center_y": .9}
            size_hint_x: None
            width: 280


<MenuScreen>
    name: "menu_screen"

    BoxLayout:
        orientation: "vertical"
        md_bg_color: (240/255, 240/255, 240/255, 1)

        MDBottomAppBar:
            MDToolbar:
                icon: "reload"
                type: "bottom"
                mode: "center"
                left_action_items: [["calendar-text", lambda x: app.change_screen("intro_screen")], ["account-group", lambda x: app.change_screen("success_screen")]]
                right_action_items: [["magnify", lambda x: app.change_screen("search_screen")], ["menu", lambda x: x]]

这是完整的回溯错误消息,在此先感谢您。

[INFO   ] [Logger      ] Record log in C:\Users\HP USER\.kivy\logs\kivy_21-08-04_30.txt
[INFO   ] [deps        ] Successfully imported "kivy_deps.angle" 0.3.0
[INFO   ] [deps        ] Successfully imported "kivy_deps.glew" 0.3.0
[INFO   ] [deps        ] Successfully imported "kivy_deps.sdl2" 0.3.1
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] Installed at "C:\Users\HP 
USER\AppData\Local\Programs\Python\Python38-32\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.8.7 (tags/v3.8.7:6503f05, Dec 21 2020, 17:43:54) [MSC v.1928 32 bit (Intel)]
[INFO   ] [Python      ] Interpreter at "C:\Users\HP USER\AppData\Local\Programs\Python\Python38-32\python.exe"
[INFO   ] [KivyMD      ] 0.104.2.dev0 (installed at "C:\Users\HP USER\Desktop\Projects\KetoApp\kivymd\__init__.py")
[INFO   ] [Factory     ] 186 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'4.0.0 - Build 10.18.10.4358'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel'>
[INFO   ] [GL          ] OpenGL renderer <b'Intel(R) HD Graphics'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 0
[INFO   ] [GL          ] Shading version <b'4.00 - Build 10.18.10.4358'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <16>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [GL          ] NPOT texture support is available
[INFO   ] [Base        ] Start application main loop
[INFO   ] [Loader      ] using a thread pool of 2 workers
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
 File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
 Exception ignored in: 'kivy.graphics.instructions.RenderContext.set_state'
 Traceback (most recent call last):
   File "kivy\graphics\shader.pyx", line 245, in kivy.graphics.shader.Shader.set_uniform
   File "kivy\graphics\shader.pyx", line 284, in kivy.graphics.shader.Shader.upload_uniform
 IndexError: list index out of range
[INFO   ] [Base        ] Leaving application in progress...
4

0 回答 0