Как в KivyMD получить значение c поля для ввода MDTextField?
Я использую kivymd. Как я могу получить значение из MDTextField с id: summ, при нажатии на кнопку с id: bt2. Я создал функцию def show, которая должна принять это самое значение, и попытался реализовать ее работу, но что-то не получется(
выдает такую ошибку:
File "F:\Fin_app\layouts.kv", line 46, in <module>
on_press: app.show(self)
TypeError: MainApp.show() takes 1 positional argument but 2 were given
main.py
from kivy.lang import Builder
from kivy.properties import StringProperty, BooleanProperty
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.uix.screen import MDScreen
from kivymd.app import MDApp
from kivymd.theming import ThemableBehavior
Builder.load_file('layouts.kv')
Builder.load_file('backdrop.kv')
class ExampleBackdrop(MDScreen):
pass
class ItemBackdropBackLayer(ThemableBehavior, MDBoxLayout):
icon = StringProperty("android")
text = StringProperty()
selected_item = BooleanProperty(False)
def on_touch_down(self, touch):
if self.collide_point(touch.x, touch.y):
for item in self.parent.children:
if item.selected_item:
item.selected_item = False
self.selected_item = True
return super().on_touch_down(touch)
class MainApp(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.title = "KivyMD Example - Backdrop"
self.theme_cls.primary_palette = "DeepPurple"
def show(self, **kwargs):
print(self.root.ids.summ.text)
def build(self):
self.root = ExampleBackdrop()
if __name__ == "__main__":
MainApp().run()
backdrop.kv
<ExampleBackdrop>
MDBackdrop:
id: backdrop
left_action_items: [['menu', lambda x: self.open()]]
title: "Example Backdrop"
radius_left: "25dp"
radius_right: "25dp"
header_text: "Меню:"
MDBackdropBackLayer:
MyyBackdropBackLayer:
id: backlayer
MDBackdropFrontLayer:
MyyBackdropFrontLayer:
backdrop: backdrop
layouts.kv
#:import os os
#:import Window kivy.core.window.Window
#:import IconLeftWidget kivymd.uix.list.IconLeftWidget
#:import images_path kivymd.images_path
<ItemBackdropFrontLayer@TwoLineAvatarListItem>
icon: "android"
IconLeftWidget:
icon: root.icon
<MyyBackdropFrontLayer@ScrollView>
backdrop: None
backlayer: None
MDGridLayout:
adaptive_height: True
cols: 2
padding: "5dp"
ItemBackdropFrontLayer:
text: "Кнопка 1"
icon: "monitor-star"
on_press:
root.backdrop.open(-Window.height / 2)
MDTextField:
id: NotUsed
hint_text: "Вводи сюда"
<MyyBackdropBackLayer@ScrollView>
MDGridLayout:
adaptive_height: True
cols: 2
padding: "5dp"
ItemBackdropFrontLayer:
id: bt2
text: "кнопка 2"
secondary_text: "с действием"
icon: "monitor-star"
on_press: app.show(self)
MDTextField:
id: summ
hint_text: "Вводи сюда"
mode: "fill"