我有一个带有按钮(id:display_name)的屏幕小部件,该按钮具有文本属性。当我按下该按钮时,会显示一个模式,其中有一个文本输入小部件和一个按钮小部件。我想在模式的文本输入小部件中输入文本,并在按下模式的按钮时在屏幕小部件的按钮中显示该文本。我在更改模式中的屏幕按钮的文本属性时遇到困难。我该怎么做呢?我尝试了下面的代码,但出现此错误:
AttributeError: 'kivy.properties.ObjectProperty' object has no attribute 'text'
kv code
<ProfileScreen>:
display_name: display_name
GeneralBoxLayout:
BoxLayout:
GridLayout:
BackButton:
on_release: root.manager.current = 'home'
size_hint: (0.1,1.0)
Image:
size_hint: (0.1,1.0)
Image:
source: 'img/logo4.png'
size_hint: (0.60,1.0)
Image:
size_hint: (0.05,1.0)
MenuButton:
size_hint: (0.15,1.0)
on_release: app.build_profile_screen(); root.manager.current = 'profile'
BoxLayout:
ScrollView:
size_hint: (1,.93)
GridLayout:
BoxLayout:
Button:
id: display_name
font_size: '14sp'
text_size: (290, 40)
halign: 'left'
background_normal: 'img/white_button1.png'
background_down: 'img/white_button1.png'
border: 20,20,20,20
markup: True
on_release: app.update_display_name_popup()
<UpdateDisplayNamePopup>:
updated_display_name: updated_display_name
size_hint: .5, .3
BoxLayout:
padding: [10,10,10,10]
orientation: 'vertical'
TextInput:
id: updated_display_name
hint_text: 'Enter New Display Name'
Button:
font_size: '14sp'
text: 'Update Display Name'
background_normal: 'img/green_button5.png'
background_down: 'img/green_button5.png'
size_hint_y: None
on_release: root.update_display_name(); root.dismiss()
main.py代码
from kivy.properties import ObjectProperty
class ProfileScreen(Screen):
display_name = ObjectProperty(None)
class UpdateDisplayNamePopup(ModalView):
def update_display_name(self):
ProfileScreen.display_name.text = self.updated_display_name.text