Python kivy-从kv到py的文本输入-导入数据

Python kivy-从kv到py的文本输入-导入数据,python,python-3.x,kivy,kivy-language,Python,Python 3.x,Kivy,Kivy Language,我试图从kv文件中的一个简单文本输入中获取数据,并使用python文件中的信息。 但我总是犯同样的错误。 当我按下一个按钮,函数try to run看起来像是试图从text_location小部件获取信息时,就会发生此错误 先谢谢你 class ScatterTextWidget(BoxLayout): def initialize_request(self): ''' Initial analysis and control flow of the class '

我试图从kv文件中的一个简单文本输入中获取数据,并使用python文件中的信息。 但我总是犯同样的错误。 当我按下一个按钮,函数try to run看起来像是试图从text_location小部件获取信息时,就会发生此错误 先谢谢你

class ScatterTextWidget(BoxLayout):


    def initialize_request(self):
         ''' Initial analysis and control flow of the class '''

         location = self.ids.input_location
         date = S.ids.input_date
         time_raw = ScatterTextWidget.ids.input_time
         print(f'{location} - {date} - {time_raw}')

class HistoricalApp(App):
     def build(self):
         return ScatterTextWidget()

if __name__ == "__main__":

    HistoricalApp().run()
名为“historical.kv”的kivy文件 我减少它是因为它有点长

<ScatterTextWidget>:
    BoxLayout:
        canvas.before:
            Color:
                rgb: utils.get_color_from_hex('#01183f')
            Rectangle:
                pos: self.pos
                size: self.size
        size_hint_y: None
        height: 40
        valign: 'middle'

        TextInput:
            id:text_location
            width: 200
            id: input2
            font_size: 15
            size_hint_y: None
            height:40
        TextInput:
            id:input_date
            width: 200
            id: input1
            font_size: 15
            size_hint_y: None
            height: 40
        TextInput:
            id:input_time
            width: 200
            id: input1
            font_size: 15
            size_hint_y: None
            height: 40
:
盒子布局:
在以下情况之前:
颜色:
rgb:utils.get_color_from_hex('#01183f'))
矩形:
pos:self.pos
大小:self.size
尺寸提示:无
身高:40
valign:“中间”
文本输入:
id:text\u位置
宽度:200
id:input2
字体大小:15
尺寸提示:无
身高:40
文本输入:
id:输入日期
宽度:200
id:input1
字体大小:15
尺寸提示:无
身高:40
文本输入:
id:输入时间
宽度:200
id:input1
字体大小:15
尺寸提示:无
身高:40
我收到的错误是

File "kivy\properties.pyx", line 838, in 
 kivy.properties.ObservableDict.__getattr__
 KeyError: 'text_location'

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "C:/Users/IBKCo/Desktop/Git Programs/TimeStationHistoricalRecords/MainGui.py", line 77, in <module>
     HistoricalApp().run()
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\app.py", line 826, in run
     runTouchApp()
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\base.py", line 502, in runTouchApp
     EventLoop.window.mainloop()
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\core\window\window_sdl2.py", line 727, in mainloop
     self._mainloop()
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\core\window\window_sdl2.py", line 460, in _mainloop
     EventLoop.idle()
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\base.py", line 340, in idle
     self.dispatch_input()
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\base.py", line 325, in dispatch_input
     post_dispatch_input(*pop(0))
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\base.py", line 291, in post_dispatch_input
     wid.dispatch('on_touch_up', me)
   File "kivy\_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\uix\behaviors\button.py", line 179, in on_touch_up
     self.dispatch('on_release')
   File "kivy\_event.pyx", line 703, in kivy._event.EventDispatcher.dispatch
   File "kivy\_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
   File "kivy\_event.pyx", line 1098, in kivy._event.EventObservers._dispatch
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site-packages\kivy\lang\builder.py", line 64, in custom_callback
     exec(__kvlang__.co_value, idmap)
   File "C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\historical.kv", line 127, in <module>
     on_release: root.initialize_request()
   File "C:/Users/IBKCo/Desktop/Git Programs/TimeStationHistoricalRecords/MainGui.py", line 31, in initialize_request
     location = self.ids.text_location
   File "kivy\properties.pyx", line 841, in kivy.properties.ObservableDict.__getattr__
 AttributeError: 'super' object has no attribute '__getattr__'
文件“kivy\properties.pyx”,第838行,在
kivy.properties.ObservableDecit.\uu getattr__
KeyError:“文本位置”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:/Users/IBKCo/Desktop/Git Programs/TimeStationHistoricalRecords/MainGui.py”,第77行,在
HistoricalApp().run()
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\app.py”,第826行,正在运行
runTouchApp()
runTouchApp中的文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\base.py”,第502行
EventLoop.window.mainloop()
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\core\window\window\u sdl2.py”,第727行,在mainloop中
self._mainloop()
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\core\window\window\u sdl2.py”,第460行,在\u mainloop中
EventLoop.idle()
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\base.py”,第340行,处于空闲状态
self.dispatch_input()
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\base.py”,第325行,在dispatch\u输入中
发送后输入(*pop(0))
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\base.py”,第291行,在后期调度输入中
wid.dispatch('我在润色时)
文件“kivy\\ u event.pyx”,第707行,在kivy.\u event.EventDispatcher.dispatch中
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\uix\behaviors\button.py”,第179行,在on\u touch\u中
自我分派(“发布时”)
文件“kivy\\ u event.pyx”,第703行,在kivy.\u event.EventDispatcher.dispatch中
文件“kivy\\u event.pyx”,第1214行,在kivy.\u event.eventobserver.dispatch中
文件“kivy\\u event.pyx”,第1098行,在kivy.\u event.eventobserver.\u调度
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\pdEnv\lib\site packages\kivy\lang\builder.py”,第64行,在自定义回调中
exec(\uuuukVLANG\uuuuuuu.co\u值,idmap)
文件“C:\Users\IBKCo\Desktop\Git Programs\TimeStationHistoricalRecords\historical.kv”,第127行,在
发布时:root.initialize\u请求()
文件“C:/Users/IBKCo/Desktop/Git Programs/TimeStationHistoricalRecords/MainGui.py”,第31行,在初始化_请求中
位置=self.ids.text\u位置
文件“kivy\properties.pyx”,第841行,位于kivy.properties.observedict.\uu getattr__
AttributeError:“super”对象没有属性“\uuu getattr\uuuu”
先谢谢你
最好,首先,您需要删除
id:input1
行和
id:input2
行。然后将
initialize_请求
方法更改为:

def initialize_request(self):
     ''' Initial analysis and control flow of the class '''

     location = self.ids.text_location.text
     date = self.ids.input_date.text
     time_raw = self.ids.input_time.text
     print(f'{location} - {date} - {time_raw}')

请注意,
self.ids.text\u location
是对
TextInput
小部件的引用,因此您必须添加
.text
以获取其文本。其他
TextInput
小部件也一样。

为每个
TextInput
定义了几个
ID
。只有最后一条有效。而且你有重复的
ID
,这是不允许的。哇,我真不敢相信我没看到。这就是为什么有时候你需要一双眼睛来帮助你。非常感谢你的帮助。这完全是新手犯的错误。谢谢你指出,贝斯特,