我试图清除textinput中的文本,但在访问texinput属性时遇到问题。我想清除文本(entry.text)后,当我释放按钮接受并离开InputScreen。我找到了get_screen()来设置属性,但我现在不知道如何将它与kivy-language一起使用
ScreenManagement:
id: screen_manager
transition: FadeTransition()
MainScreen:
id: main_screen
name: "main"
manager: screen_manager
numberSet1: input_screen.number1
numberSet2: input_screen.number2
numberSet3: input_screen.number3
InputScreen:
id: input_screen
name: "input"
manager: screen_manager
textIdToReturn: main_screen.textName
<InputScreen>:
NawiButton:
tempNumber: key_board.entryText
pos: root.width - 100 - 0.25 * root.width, 10
text: "Acceppt"
on_release: root.saveValue(root.textIdToReturn, self.tempNumber)
background_normal: ''
background_color: .3, 1, .4, .85
KeyBoardGridLayout:
id: key_board
name: "KeyBoard"
<KeyBoardGridLayout>:
rows: 5
padding: [100, 10, 100, 100]
spacing: 3
entryText: entry.text
BoxLayout:
TextInput:
id: entry
font_size: 45
multiline: False
on_text: root.update_padding(args[0])
padding_x: self.width/2
BoxLayout:
spacing: 3
KeyBoardButton:
text: "1"
on_press: entry.text = root.addText(entry.text, self.text)
KeyBoardButton:
text: "2"
on_press: entry.text = root.addText(entry.text, self.text)
KeyBoardButton:
text: "3"
on_press: entry.text = root.addText(entry.text, self.text)MainScreen类,但我认为这并不重要:
<MainScreen>:
BoxLayout:
orientation: "vertical"
spacing: 50
padding: [300, 50, 300, 50]
Button:
text: root.numberSet1
id: textNum1
name: textNum1
font_size: 45
on_release:
root.touch("textNum1")发布于 2018-06-03 05:49:58
在kv文件中,使用on_leave或InputScreen:处的on_pre_leave事件清除文本(entry.text)。
事件:
on_pre_leave:()
当屏幕即将被移除时触发的事件:开始离开动画。
on_leave:()
当屏幕被移除时触发的事件:离开动画完成。
代码片段
ScreenManagement:
id: screen_manager
transition: FadeTransition()
MainScreen:
id: main_screen
name: "main"
manager: screen_manager
numberSet1: input_screen.number1
numberSet2: input_screen.number2
numberSet3: input_screen.number3
InputScreen:
id: input_screen
name: "input"
manager: screen_manager
textIdToReturn: main_screen.textName
on_leave:
root.ids.input_screen.key_board.ids.entry.text = ''
...
<InputScreen>:
key_board: key_board备注
kv文件- ObjectProperty和ids
key_board: key_board指示名为key_board的ObjectProperty正指向(挂钩)KeyBoardGridLayout的id key_board。
entry它是一个id,也是对TextInput小部件弱引用。
entry.text它引用了TextInput的文本的值。
entryText: entry.textentryText是KeyBoardGridLayout的属性。如果小部件没有具有给定名称的属性,将自动创建一个ObjectProperty并将其添加到小部件中。将entry.text的值赋给entryText
https://stackoverflow.com/questions/50660685
复制相似问题