我得到一个 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...