在 kivy2 或 kivymd 中,有没有一种方法可以动态创建屏幕而不将它们添加到 kv 文件中
Posted
技术标签:
【中文标题】在 kivy2 或 kivymd 中,有没有一种方法可以动态创建屏幕而不将它们添加到 kv 文件中【英文标题】:In kivy2 or kivymd, is there a way to create a screen dynamically without adding them to a kv file 【发布时间】:2021-05-19 20:34:16 【问题描述】:例如...假设我有很多产品。
我希望能够让程序知道某个产品被点击...很简单
但是我希望程序根据模板创建一个屏幕
基本上是即时的。
感谢您的帮助
这是我迄今为止尝试过的。
def Create_New_Product_Screen(self,question,Screen_Name):
print(self,Screen_Name+'Made it here')
sm = ScreenManager()
screen = Screen(name=Screen_Name)
sm.add_widget(screen)
#sm.current = Screen_Name
app = MDApp.get_running_app()
app.change_screen(Screen_Name)
【问题讨论】:
【参考方案1】:def Create_New_Screen(self,Screen_Name):
app = MDApp.get_running_app()
sm = app.root.ids['screen_manager']
screen = Screen(name=Screen_Name)
sm.add_widget(screen)
sm.current = Screen_Name
现在我只需要弄清楚如何为屏幕制作模板 但这有效...我必须在 kivy 文件中找到屏幕管理器 然后调用它并创建屏幕然后切换到它。
【讨论】:
以上是关于在 kivy2 或 kivymd 中,有没有一种方法可以动态创建屏幕而不将它们添加到 kv 文件中的主要内容,如果未能解决你的问题,请参考以下文章
KivyMD RecycleView 的 FPS 和延迟较低