【发布时间】:2018-04-09 06:47:35
【问题描述】:
我正在开发一个大型 GUI,在 GUI 内部,我可能更经常使用以下小部件:
为此,我制作了以下 kivy 课程:
<ParameterFileInput@ParameterInput>
ParameterLabel:
width: root.label_width
text: root.label_text
FloatLayout:
size_hint: None, 1.0
width: 10
ParameterTextInput:
gid: root.content_id
on_text_validate: app.set_widget_content(self.gid, None)
size_hint: 0.7,1.0
text: root.preset_text
FloatLayout:
size_hint: None, 1.0
width: 10
Button:
text: "Browse"
size_hint: None, 1.0
on_press: root.button_function
width: 100
在python中:
class ParameterInput(StackLayout):
content_id = StringProperty()
label_text = StringProperty()
preset_text = StringProperty()
label_width = NumericProperty(80)
spinner_width = NumericProperty(100)
spinner_values = ListProperty()
button_function = ObjectProperty()
问题是当我按下按钮时应该调用的 button_function。 我的实现示例如下:
ParameterFileInput:
label_text: "data_file"
content_id: "data_file"
button_function: app.train_button()
可能不用说app.train_button()没有被调用。
如果有人能帮我解决这个问题,我会非常高兴。
你好,芬恩
【问题讨论】:
-
那么,函数是什么?
-
试试:
on_press: root.button_function() -
是的,我刚刚尝试过,它也对我有用 :) 谢谢!!
-
如果您发布回复,您会将其标记为正确吗?
-
另一个问题。我可以在 kv 文件中定义一个 lambda 表达式吗?所以我会写一个 lambda 表达式而不是 button_function: app.train_button?
标签: python kivy kivy-language