Python ';超级';对象没有属性'__getattr';当我尝试访问屏幕ID时

Python ';超级';对象没有属性'__getattr';当我尝试访问屏幕ID时,python,kivymd,Python,Kivymd,两天以来,我一直试图解决这个问题。我几乎什么都试过了。我检查了我的ID 10次,看它们是否是字符串。他们不是!!我把clock.schedule\作为延迟初始化的一种方法,但程序并没有在kv文件中定义ID。这是代码 from kivymd.theming import ThemeManager from kivymd.app import MDApp from kivy.lang import Builder from kivy.core.window import Window from ki

两天以来,我一直试图解决这个问题。我几乎什么都试过了。我检查了我的ID 10次,看它们是否是字符串。他们不是!!我把clock.schedule\作为延迟初始化的一种方法,但程序并没有在kv文件中定义ID。这是代码

from kivymd.theming import ThemeManager
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.floatlayout import FloatLayout
from kivymd.uix.tab import MDTabsBase
from kivy.clock import Clock
from kivy.properties import ObjectProperty
from kivy.app import App
Window.size = (300 , 400)


class Screen1(Screen):
    pass
class Screen2(Screen):
    pass
class Manager(ScreenManager):
    pass


Builder.load_string("""

<Manager>:
  
    Screen1:
        
    Screen2:
        
<Screen1>:
    name:"scr1"
    
    BoxLayout:
        
        orientation: 'vertical'
        MDToolbar:
            
            title:"ahmet"
        MDTabs:
            
            tab_display_mode: "text"
            on_tab_switch:app._press
            
            
            MDTabsBase:
                id:hasta
                text: "hasta"
                
                   
            MDTabsBase:
                id:doktor
                text: "doktor"

            

    FloatLayout:
        
                   
        MDRoundFlatIconButton:
            on_press:app._doThis
            text:"submit"
            pos_hint:{"x":0.3,"top":0.7}
            
    FloatLayout:
        orientation: 'vertical'
        MDTextFieldRound:
            id:email
            icon_left: "email"
            hint_text: "email"
            pos_hint:{"x":0.35,"top":0.5}
            size_hint:0.3,0.05
        MDTextFieldRound:
            id:password
            icon_left: "password"
            hint_text: "password"
            pos_hint:{"x":0.35,"top":0.4}
            size_hint:0.3,0.05
        MDLabel:
            multinline:True
            text:
                "label"
            pos_hint:{"x":0.2,"top":0.35}
            size_hint:0.6,0.3
            font_style:"H6"
            font_size:15
            theme_text_color: "Custom"
            text_color: 0, 0, 1, 1
        

<Screen2>:
    name:"scr2"
    
    BoxLayout:
        
        orientation: 'vertical'
        MDToolbar:
            text:"ahmet"
        MDTabs:
            
            on_tab_switch:app._press
            MDTabsBase:
                id:hasta
                text: "hasta"
                
                   
            MDTabsBase:
                id:doktor
                text: "doktor"
    FloatLayout:
        orientation: 'horizontal'
        MDRoundFlatIconButton:
            on_press:app._doThis
            text:"submit"
            pos_hint:{"x":0.3,"top":0.7}
            
        
           
    FloatLayout:
        orientation: 'vertical'
        MDTextFieldRound:
            id:email
            icon_left: "email"
            hint_text: "email"
            pos_hint:{"x":0.35,"top":0.5}
            size_hint:0.3,0.05
        MDTextFieldRound:
            id:password
            icon_left: "password"
            hint_text: "password"
            pos_hint:{"x":0.35,"top":0.4}
            size_hint:0.3,0.05
        MDLabel:
            multiline:True
            text:
                "label"
            pos_hint:{"x":0.2,"top":0.35}
            size_hint:0.6,0.3
            font_style:"H6"
            font_size:15   
            theme_text_color: "Custom"
            text_color: 0, 0, 1, 1            
""")




class DemoApp(MDApp):
    
    def build(self):
        Clock.schedule_once(self._press,2)
        Clock.schedule_once(self._doThis,2)
        return Manager()
    
    def _press(self,*dt):
        self.root.ids.hasta.text
        
     
    def _doThis(self,*dt):
        self.root.ids.hasta.text
        
   
DemoApp().run()
从kivymd.theming导入管理器
从kivymd.app导入MDApp
从kivy.lang导入生成器
从kivy.core.window导入窗口
从kivy.uix.screenmanager导入screenmanager,屏幕
从kivy.uix.floatlayout导入floatlayout
从kivymd.uix.tab导入MDTabsBase
从kivy.clock导入时钟
从kivy.properties导入ObjectProperty
从kivy.app导入应用程序
Window.size=(300400)
类别屏幕1(屏幕):
通过
第2类屏幕(屏幕):
通过
班级经理(屏幕经理):
通过
生成器。加载\u字符串(“”)
:
屏幕1:
屏幕2:
:
名称:“scr1”
盒子布局:
方向:“垂直”
MDToolbar:
标题:“艾哈迈特”
MDTAB:
选项卡显示模式:“文本”
打开选项卡开关:应用程序。\u按
MDTabsBase:
id:哈斯塔
案文:“哈斯塔”
MDTabsBase:
id:doktor
正文:“doktor”
浮动布局:
MDRoundFlatIconButton:
按:应用程序。\u完成此操作
案文:“提交”
pos_提示:{“x”:0.3,“top”:0.7}
浮动布局:
方向:“垂直”
MDTextFieldRound:
id:电子邮件
图标左:“电子邮件”
提示文字:“电子邮件”
pos_提示:{“x”:0.35,“top”:0.5}
尺寸提示:0.3,0.05
MDTextFieldRound:
id:密码
左侧图标:“密码”
提示文字:“密码”
pos_提示:{“x”:0.35,“top”:0.4}
尺寸提示:0.3,0.05
MDLabel:
多行:对
正文:
“标签”
pos_提示:{“x”:0.2,“top”:0.35}
尺寸提示:0.6,0.3
字体样式:“H6”
字体大小:15
主题\文本\颜色:“自定义”
文本颜色:0,0,1,1
:
名称:“scr2”
盒子布局:
方向:“垂直”
MDToolbar:
案文:“艾哈迈特”
MDTAB:
打开选项卡开关:应用程序。\u按
MDTabsBase:
id:哈斯塔
案文:“哈斯塔”
MDTabsBase:
id:doktor
正文:“doktor”
浮动布局:
方向:“水平”
MDRoundFlatIconButton:
按:应用程序。\u完成此操作
案文:“提交”
pos_提示:{“x”:0.3,“top”:0.7}
浮动布局:
方向:“垂直”
MDTextFieldRound:
id:电子邮件
图标左:“电子邮件”
提示文字:“电子邮件”
pos_提示:{“x”:0.35,“top”:0.5}
尺寸提示:0.3,0.05
MDTextFieldRound:
id:密码
左侧图标:“密码”
提示文字:“密码”
pos_提示:{“x”:0.35,“top”:0.4}
尺寸提示:0.3,0.05
MDLabel:
多行:正确
正文:
“标签”
pos_提示:{“x”:0.2,“top”:0.35}
尺寸提示:0.6,0.3
字体样式:“H6”
字体大小:15
主题\文本\颜色:“自定义”
文本颜色:0,0,1,1
""")
类DemoApp(MDApp):
def生成(自):
时钟。计划一次(自行按下,2)
时钟。计划一次(自我完成,2)
退货经理()
def_压力(自,*dt):
self.root.ids.hasta.text
def_doThis(self,*dt):
self.root.ids.hasta.text
DemoApp().run()
这是错误信息

KeyError: 'hasta'


During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "C:\Users\Melikşah GÜRCÜ\Desktop\md.py", line 162, in <module>
    DemoApp().run()

  File "C:\python\lib\site-packages\kivy\app.py", line 855, in run
    runTouchApp()

  File "C:\python\lib\site-packages\kivy\base.py", line 504, in runTouchApp
    EventLoop.window.mainloop()

  File "C:\python\lib\site-packages\kivy\core\window\window_sdl2.py", line 747, in mainloop
    self._mainloop()

  File "C:\python\lib\site-packages\kivy\core\window\window_sdl2.py", line 479, in _mainloop
    EventLoop.idle()

  File "C:\python\lib\site-packages\kivy\base.py", line 339, in idle
    Clock.tick()

  File "C:\python\lib\site-packages\kivy\clock.py", line 591, in tick
    self._process_events()

  File "kivy\_clock.pyx", line 384, in kivy._clock.CyClockBase._process_events

  File "kivy\_clock.pyx", line 414, in kivy._clock.CyClockBase._process_events

  File "kivy\_clock.pyx", line 412, in kivy._clock.CyClockBase._process_events

  File "kivy\_clock.pyx", line 167, in kivy._clock.ClockEvent.tick

  File "C:\Users\Melikşah GÜRCÜ\Desktop\md.py", line 155, in _press
    self.root.ids.hasta.text

  File "kivy\properties.pyx", line 863, in kivy.properties.ObservableDict.__getattr__

AttributeError: 'super' object has no attribute '__getattr__'
KeyError:'hasta'
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\Melikşah GÜRCÜ\Desktop\md.py”,第162行,在
DemoApp().run()
文件“C:\python\lib\site packages\kivy\app.py”,第855行,正在运行
runTouchApp()
runTouchApp中第504行的文件“C:\python\lib\site packages\kivy\base.py”
EventLoop.window.mainloop()
文件“C:\python\lib\site packages\kivy\core\window\window\u sdl2.py”,第747行,在mainloop中
self._mainloop()
文件“C:\python\lib\site packages\kivy\core\window\window\u sdl2.py”,第479行,在\u mainloop中
EventLoop.idle()
文件“C:\python\lib\site packages\kivy\base.py”,第339行,处于空闲状态
时钟滴答作响
文件“C:\python\lib\site packages\kivy\clock.py”,第591行,勾号
self.\u进程\u事件()
文件“kivy\\u clock.pyx”,第384行,在kivy.\u clock.CyClockBase.\u process\u事件中
文件“kivy\\u clock.pyx”,第414行,在kivy.\u clock.CyClockBase.\u process\u事件中
文件“kivy\\u clock.pyx”,第412行,在kivy.\u clock.CyClockBase.\u process\u事件中
文件“kivy\\u clock.pyx”,第167行,在kivy.\u clock.ClockEvent.tick中
文件“C:\Users\Melikşah GÜRCÜ\Desktop\md.py”,第155行,在U出版社
self.root.ids.hasta.text
文件“kivy\properties.pyx”,第863行,位于kivy.properties.observedict.\uu getattr__
AttributeError:“super”对象没有属性“\uuu getattr\uuuu”
class DemoApp(MDApp):

    def _press(self, *dt):
        print(self.root.get_screen("scr2").ids.hasta.text)

    def _doThis(self, *dt):
        print(self.root.get_screen("scr2").ids.hasta.text)