【问题标题】:Kivy Spinner: is any event triggered when a value is selected from the SpinnerKivy Spinner:是从 Spinner 中选择一个值时触发的任何事件
【发布时间】:2015-10-21 16:04:31
【问题描述】:

我在我的小部件中引入了Spinner,并且每次我从中选择不同的值时我都想执行一些操作。

有可能吗?

我似乎只在on_presson_release,但是当做出不同的值时,它们不会被触发: - (

最好的问候,

博扬

【问题讨论】:

  • 我想我找到了...on_text
  • on_text 是正确的方法,如果您只想在所选值更改时收到通知。我们可能应该添加一个在用户进行选择时触发的事件,但目前不方便检测。
  • 感谢您的评论 - on_text 实际上相当不错,但由于某种原因,我花了几个小时才弄明白。如果只是在这里提到:kivy.org/docs/api-kivy.uix.spinner.html
  • on_text 似乎不再起作用;你找到替代品了吗?
  • @Daniel 你是什么意思 on_text 似乎不再起作用?它对我来说很好(在 Kivy 1.9.1 中)

标签: events spinner kivy


【解决方案1】:

因为每次 attr:values 发生变化时微调器都会更新其文本属性,
我会这样做:

    Spinner:        
      text: '<select>'
      values: ['White', 'Yellow', 'Red', 'Green']
      on_text: root.on_spinner_select(self.text)

在python代码中:

class RootWidget(BoxLayout):
  def on_spinner_select(self, text):
    print (text)

【讨论】:

    【解决方案2】:

    你必须使用 on_text:

    spinner:
           id: my_spinner
           values: ("Home", "bureau", "kitchen")
           on_text: if my_spinner.text == "Home": root.Home()
                    elif my_spinner.text == "bureau": root.bureau()
                    else: root.kitchen()
    

    现在在 python 中:

    def Home():
       "do your things"
    def bureau():
       "do your things"
    def kitchen():
       "do your things"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多