How To Access Class Instance Initiated By The Kivy Code?
I am stuck. I can't wrap my mind around how to access an object that is initiated in the Kivy file? This is my code: from kivy.app import App from kivy.lang import Builder from kiv
Solution 1:
Several ways to accomplish this. Here is one. You can create a StringProperty
in the LoginScreen
to contain the created filename:
classLoginScreen(Screen):
filename = StringProperty('')
defcreate_file(self):
self.filename = f"file_{time.strftime('%Y%m%d_%H%M%S')}.txt"withopen(self.filename, 'w') as file:
file.write("Some content")
And the create_file()
method saves the file name to the filename
property.
Then you can access the filename several ways, like login_screen_instance.filename
, or taking advantage of the fact that it is now a Property
, you can use it in your kv
:
<RootWidget>:LoginScreen:id:login_screenname:"login_screen"on_filename:root.get_file(self.filename)
And adding a get_file()
method to RootWidget
:
classRootWidget(ScreenManager):
defget_file(self, filename):
print('file is', filename)
Now, whenever a new file is created by the create_file()
method, the get_file()
method is called.
Post a Comment for "How To Access Class Instance Initiated By The Kivy Code?"