I have modified your code below. I put the kv in the same file to simplify uploading. I commented out a few of the lines, that caused problems or were unnecessary. The login_data() method was changed to use get_screen()
def login_data(self):
p = self.root.ids.screen_manager.get_screen("passwordmanager")
website = p.website.text
username = p.username.text
password = p.passwords.text
print(website)
print(username)
print(password)
In this context:
self.root.ids.screen_manager.get_screen("passwordmanager")
self is the App
root is the root widget
ids.screen_manager gets the screen_manager widget from the ids dictionary
get_screen("passwordmanager") returns the requested screen
The complete code:
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from
kivymd.app import MDApp
kv = """
# main_window: main_window
# settings: settings
# passwordmanager: passwordmanager
Screen:
id: main_window
name: "main_window"
MDLabel:
text:"Hello"
halign:"center"
Screen:
class CyberShieldApp(MDApp):
screen_manager = ObjectProperty(None)
def build(self):
return Builder.load_string(kv)
def login_data(self):
p = self.root.ids.screen_manager.get_screen("passwordmanager")
website = p.website.text
username = p.username.text
password = p.passwords.text
print(website)
print(username)
print(password)
if __name__ == "__main__":
app = CyberShieldApp()
app.run()