【发布时间】:2019-02-23 06:22:45
【问题描述】:
我想点击 MDMenuItem 来获取文本或做某事。 但是一个错误说“AttributeError:'MDMenuItem'对象没有属性'text'”
这样的.py文件
class MDMenuItem(Widget):
pass
class MyScreen(Screen):
menu_items = [
{'viewclass': 'MDMenuItem',
'text': 'text1'},
{'viewclass': 'MDMenuItem',
'text': 'text2'},
]
def change_variable(self, value):
print("\nvalue=", value)
self.VARIABLE = value
print("\tself.VARIABLE=", self.VARIABLE)
.kv 文件如下:
#:import MDDropdownMenu kivymd.menu.MDDropdownMenu
#:import MDRaisedButton kivymd.button.MDRaisedButton
<MDMenuItem>:
on_release: root.change_variable(self.text)
<MyScreen>:
name: myscrn
MDRaisedButton:
size_hint: None, None
size: 3 * dp(48), dp(48)
text: 'MDButton'
opposite_colors: True
pos_hint: {'center_x': 0.5, 'center_y': 0.5}
on_release: MDDropdownMenu(items=root.menu_items, width_mult=4).open(self)
我该怎么办?
编辑: 感谢你的回复。就我而言,这个 .py 子程序不是内容“应用程序”。我不想将方法放入 main.py,因为我希望 main.py 保持干净。(只是内容导入、builder.load_file、add_wiget...)
所以我想在不使用“app.something”的情况下调用方法。 我可以使用 root.something 或其他方法调用 change_variable 并获取文本吗?
【问题讨论】:
标签: python-3.x kivy kivy-language