python - Python:通过函数改变屏幕
问题描述
我想通过更改屏幕的通用功能来减少我的代码。我的屏幕名称为数字,例如名称:“2”..当您单击底部表格中的某个列表时,我想更改某个屏幕。
在.py
def show_bottom_sheet(self):
bs = MDListBottomSheet()
bs.add_item("Models", lambda x: x,icon='account-group-outline')
for y in 1,2,3,4,12,13,14,21,23,24,31,32,34,41,42,43,123,124,134,234:
bs.add_item(f"example {y} ", lambda x= y: self.behavior(x), icon='account-group-outline')
bs.open()
def behavior(self, x):
self.manager.current = str(x)
在我改变之前是这样的,但是对于每一个数字,它太没用了
def behavior2(self):
self.manager.current = "2"
我像这样尝试过,但它给了我这个错误
File "C:\Users\Stanko\PycharmProjects\pythonProject\venv\lib\site-packages\kivy\uix\screenmanager.py", line 1064, in get_screen
raise ScreenManagerException('No Screen with name "%s".' % name)
kivy.uix.screenmanager.ScreenManagerException: No Screen with name "<kivymd.uix.list.OneLineIconListItem object at 0x0AADB088>".
解决方案
推荐阅读
- r - Sum of probabilities to be one in R is a floating-point problem
- ios - 为什么我的 React Native 应用程序在启动时崩溃而没有任何错误?
- c++ - 如果没有 RTTI,在 C++ 中,我如何在运行时确定集合中的对象是否实现了接口
- http - 错误:无法下载网页:YouTube-dl 中的 HTTP 错误 403:禁止(由 HTTPError() 引起)
- excel - 在 Before_Close 中执行多个操作
- python - 如何计算 Django 模型对象的大小?
- sonarqube - 将 Sonarqube 从一台计算机移动到另一台计算机
- javascript - JavaScript:打破字符串以转换为 CSV
- c++ - 在指向包含 std::string 的对象的指针上调用析构函数的指针无效
- terraform - Terraform - 迭代嵌套地图