【问题标题】:kivy : TypeError: 'NoneType' object is not subscriptablekivy:TypeError:“NoneType”对象不可下标
【发布时间】:2021-05-11 11:41:19
【问题描述】:

我的代码是工作!但我不知道为什么会出现此错误! 任何人都可以知道我该如何修复它? :( 我认为错误是关于我的代码之间的空间,但我无法修复它。

这是我的代码:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager , Screen
from kivy.uix.image import Image
from kivy.core.window import Window
from kivy.base import runTouchApp
from kivymd.app import MDApp
from kivy.uix.boxlayout import BoxLayout
import time
from kivy.core.window import Window
from kivy.uix.camera import Camera 

Window.size = (1600, 850)



class MainPage(Screen):
    pass

class AboutBtn(Screen):
    pass

class WindowManager(ScreenManager):
    pass

class CameraClick(Screen):
    def capture(self):
        camera = self.ids['camera']
        timestr = time.strftime("%Y%m%d_%H%M%S")
        camera.export_to_png("IMG_{}.png".format(timestr))
        print("Captured")

     
class ResizableDraggablePicture(Screen):
    def on_touch_down(self, touch):
        if touch.is_mouse_scrolling:
            if touch.button == 'scrolldown':
                if self.scale < 10:
                    self.scale = self.scale * 1.1
            elif touch.button == 'scrollup':
                if self.scale > 1:
                    self.scale = self.scale * 0.8

            

Builder.load_string("""

#:import utils kivy.utils
<WindowManager>:
    MainPage:
    CameraClick:
    ResizableDraggablePicture:
    AboutBtn:
    
    
<ResizableDraggablePicture>:
    name: "resizableDraggablePicture"
    
    
<RoundedButton@Button>:
    background_color:(0,0,0,0)
    bachground_normal: ""
    canvas.before:
        Color:
            rgba:(195/255.0,231/255.0,247/255.0,1)
        RoundedRectangle:
            size: self.size
            pos: self.pos
            radius: [35]     


<MainPage>:
    name: "main page"

    Image:
        source: 'images/MICC.png'
        allow_stretch: True
        keep_ratio: False
        
    BoxLayout:
        cols:1
        orientation: "horizontal"
        size: root.width , root.height
        spacing: 25
        padding: 80, 900 , 1300 , 250


        RoundedButton:
            text: "about"
            color: (200,250,210)
            pos_hint : {'center_x': 0.5}
            font_size: 50
            size_hint_x: 1
            height:40
            size_hint_y: None
            width:30
            on_release: app.root.current = "aboutBtn"

#             Image:
#                 source: 'images/information.png'
#                 height:40
#                 width:40
#                 center_x: 210
#                 center_y: self.parent.center_y
                
    BoxLayout:
        cols:1
        orientation: "horizontal"
        size: root.width , root.height
        spacing: 25
        padding: 530, 900 , 900 , 260

        RoundedButton:
            text: "take a picture"
            color: (200,250,210)
            font_size: 40
            size_hint_x: 1
            height:60
            size_hint_y: None
            width:500
            on_release: app.root.current = "camera"

#             Image:
#                 source: 'images/takePic.png'
#                 height:40
#                 width:40
#                 center_x: 500
#                 center_y: self.parent.center_y


    BoxLayout:
        cols:1
        orientation: "horizontal"
        size: root.width , root.height
        spacing: 25
        padding: 1200, 600, 50 , 220
#         
#         RoundedButton:
#             text: "Setting"
#             font_size: 50
#             size_hint_x: 1
#             height:60
#             size_hint_y: None
#             width:500
#             # on_release: app.root.current = "SettingBtn"

            Image:
                source: 'images/settings.png'
                height:40
                width:40
                center_x: 830
                center_y: self.parent.center_y
                
<AboutBtn>:
    name: "aboutBtn"

    Image:
        source: 'images/aboutBtn.png'
        allow_stretch: True
        keep_ratio: False    
            
            
    BoxLayout:
        orientation: 'vertical'
        padding: 90 , 800 , 1400 , 750
        spacing: 5   

        ToggleButton:
            text: 'HOME'
            on_release: app.root.current = "main page"
            size_hint_y: None
            height: '48dp'            
                
                
                
                
<CameraClick>:

    name: "camera"
    orientation: 'vertical'    
 
    Image:
        source: 'images/bck-g.png'
        allow_stretch: True
        keep_ratio: False

            

            
            
    Camera:
        id: camera
        play: True
        allow_stretch: True
    
    
    BoxLayout:
        orientation: 'vertical'
        padding: 50 , 50 , 50 , 50
        spacing: 5   

        ToggleButton:
            text: 'Play'
            on_press: camera.play = not camera.play
            size_hint_y: None
            height: '48dp'
        Button:
            text: 'Capture'
            size_hint_y: None
            height: '48dp'
            on_press: root.capture()
            
            
    BoxLayout:
        orientation: 'vertical'
        padding: 50 , 10 , 800 , 600
    

        ToggleButton:
            text: 'ZOOM'
            size_hint_y: None
            size_hint_x: None
            height: '48dp'
            pos:200,200
            font_size:12
            width: 100
            height: 50
            on_release: app.root.current = "resizableDraggablePicture"
            
            
            
    BoxLayout:
        orientation: 'vertical'
        padding: 50 , 10 , 800 , 700
    

        ToggleButton:
            text: 'HOME'
            size_hint_y: None
            size_hint_x: None
            height: '48dp'
            pos:200,200
            font_size:12
            width: 100
            height: 50
            on_release: app.root.current = "main page"               

""")

class Shenacell(MDApp):
    def build(self):
        # self.theme_cls.theme_style = "Dark"
        self.theme_cls.primary_palette = "BlueGray"
        return WindowManager()

if __name__ == '__main__' :
    Shenacell().run()
    

我以前从未见过这个错误,所以我不知道它是什么意思。 我认为我在代码中使用“空格”有问题。但我想不通。 ——

这是错误:

[INFO   ] [deps        ] Successfully imported "kivy_deps.gstreamer" 0.3.2
[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   ] [Python      ] v3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:43:08) [MSC v.1926 32 bit (Intel)]
[INFO   ] [Factory     ] 186 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [Window      ] Activate GLES2/ANGLE context
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] Backend used <angle_sdl2>
[INFO   ] [GL          ] OpenGL version <b'OpenGL ES 3.0.0 (ANGLE 2.1.13739 git hash: 385fb40fd460)'>
[INFO   ] [GL          ] OpenGL vendor <b'Google Inc.'>
[INFO   ] [GL          ] OpenGL renderer <b'ANGLE (Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0)'>
[INFO   ] [GL          ] OpenGL parsed version: 3, 0
[INFO   ] [GL          ] Shading version <b'OpenGL ES GLSL ES 3.00 (ANGLE 2.1.13739 git hash: 385fb40fd460)'>
[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   ] [KivyMD      ] v0.104.1
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [GL          ] NPOT texture support is available
[INFO   ] [Camera      ] Provider: opencv(['camera_picamera', 'camera_gi'] ignored)
 Traceback (most recent call last):
   File "a.py", line 48, in <module>
     Builder.load_string("""

     if current_property[:3] == 'on_':
 TypeError: 'NoneType' object is not subscriptable

【问题讨论】:

    标签: python python-3.x raspberry-pi kivy raspberry-pi4


    【解决方案1】:

    kv的部分:

        Image:
            source: 'images/settings.png'
            height:40
            width:40
            center_x: 830
            center_y: self.parent.center_y
    

    缩进不正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2015-01-23
      相关资源
      最近更新 更多