如何为 Kivy TextInput 编写 "ghost"(或不可传递的)文本?
How to write a "ghost" (or non-passable) text for a Kivy TextInput?
在一个 kivy 应用程序中,我有一些文本输入小部件,我想将其标记为幻影文本。通过幽灵文本,我的意思是它不会向稍后调用的号码传递任何值。
例如,假设我在 kivy 应用程序中有两个文本输入条目。
TextInput:
text: '1st number'
id: first_id
input_filter: 'float'
multiline: False
TextInput:
text: '2nd number'
id: second_id
input_filter: 'float'
multiline: False
当应用程序 运行 时,第一个文本输入的默认文本为“1st number”,第二个文本输入的默认文本为“2nd number”。我将它们链接到一个函数,该函数通过一种方法将两个浮点数加在一起。问题是如果用户没有输入任何内容并按下 "run" 按钮,它会破坏应用程序。有没有办法让函数无法传递文本?
而且,我希望它在后台运行,这样用户就不必在输入数字之前点击文本输入然后删除“第一个数字”字样,有什么办法可以做到这一点吗?
我想我已经创建了一个小示例来创建您想要的行为。我创建了一个带有 TextInput 和 Label 的新小部件,它只在值为空时显示标签...
a = Builder.load_string("""
<FloatInput@FloatLayout>:
empty_text: "Input a number"
value: float(txt.text or '0.0')
TextInput:
id: txt
input_filter: 'float'
Label:
center: txt.center
size: self.parent.size or (300,300)
text: "" if self.parent.value else self.parent.empty_text
font_size: txt.font_size
color: 0,0,0,1
BoxLayout:
FloatInput:
id: fi
Label:
text: "%s" % fi.value
""")
class SimpleApp(App):
def build(self):
return a
SimpleApp().run()
您可以使用此 class 作为您的输入小部件...
在一个 kivy 应用程序中,我有一些文本输入小部件,我想将其标记为幻影文本。通过幽灵文本,我的意思是它不会向稍后调用的号码传递任何值。
例如,假设我在 kivy 应用程序中有两个文本输入条目。
TextInput:
text: '1st number'
id: first_id
input_filter: 'float'
multiline: False
TextInput:
text: '2nd number'
id: second_id
input_filter: 'float'
multiline: False
当应用程序 运行 时,第一个文本输入的默认文本为“1st number”,第二个文本输入的默认文本为“2nd number”。我将它们链接到一个函数,该函数通过一种方法将两个浮点数加在一起。问题是如果用户没有输入任何内容并按下 "run" 按钮,它会破坏应用程序。有没有办法让函数无法传递文本?
而且,我希望它在后台运行,这样用户就不必在输入数字之前点击文本输入然后删除“第一个数字”字样,有什么办法可以做到这一点吗?
我想我已经创建了一个小示例来创建您想要的行为。我创建了一个带有 TextInput 和 Label 的新小部件,它只在值为空时显示标签...
a = Builder.load_string("""
<FloatInput@FloatLayout>:
empty_text: "Input a number"
value: float(txt.text or '0.0')
TextInput:
id: txt
input_filter: 'float'
Label:
center: txt.center
size: self.parent.size or (300,300)
text: "" if self.parent.value else self.parent.empty_text
font_size: txt.font_size
color: 0,0,0,1
BoxLayout:
FloatInput:
id: fi
Label:
text: "%s" % fi.value
""")
class SimpleApp(App):
def build(self):
return a
SimpleApp().run()
您可以使用此 class 作为您的输入小部件...