Kivy - Python - 如何使用 Spinner 输出文本/字符串

3
我想将Spinner中所选字符串值用于标签文本,但无法像以下代码中那样实现。请有人帮忙!!!
class LoginScreen(GridLayout):
   def __init__(self, **kwargs):
      tex=' '
      jj=0
      super(LoginScreen, self).__init__(**kwargs)
      self.cols = 2
      self.add_widget(Label(text='Pressure (barg)',height=11 ))
      self.username = TextInput(multiline=False, height=11)
      self.add_widget(self.username)
      self.add_widget(Label(text='Temperature (deg C)'))
      self.password = TextInput(multiline=False, height=11)
      self.add_widget(self.password)
      spinner = Spinner(text='Select..', values=s, size_hint=(None, None))

  def show_selected_value(spinner, text):
      print('The spinner','have text', text)
      jj=0
      for j in range(0,852,1):
      if b3112012[j][6]==text:
          tex=text
          jj=j+1
          break
      else:
          pass
      print('The index of selected is ', jj)
      print(tex)
      tex=text
      print('Index is:', jj)

      spinner.bind(text=show_selected_value)
      self.add_widget(spinner)
      #print('value' , show_selected_value)
      dlabel=Label(text="%s" % str(spinner.text))
      self.add_widget(dlabel)

第二个最后一行,即"dlabel=Label(text="%s"%str(spinner.text))在程序运行时没有将所选的Spinner文本显示在dlabel文本中。我该如何获取Spinner索引或字符串值以在代码中使用?


继续....即最后第二行代码"dlabel=Label(text = "%s" % str(spinner.text))"在程序运行时未能将所选的Spinner文本显示在dlabel文本中。我该如何获取Spinner索引或字符串值以在代码中任何位置使用???? - user3626551
你的代码混乱了,没有意义。你是否将show_selected_value方法粘贴到了__init__方法中间? - inclement
1个回答

2

我猜你的缩进使得理解你的初始化方法变得困难。无论如何,这个想法是要保存你想设置文本的Label widget的实例。在你的情况下,这是dlabel。正确的代码应该是:

class LoginScreen(GridLayout):
   def __init__(self, **kwargs):
      super(LoginScreen, self).__init__(**kwargs)
      self.cols = 2
      self.add_widget(Label(text='压力(barg)',height=11 ))
      self.username = TextInput(multiline=False, height=11)
      self.add_widget(self.username)
      self.add_widget(Label(text='温度(摄氏度)'))
      self.password = TextInput(multiline=False, height=11)
      self.add_widget(self.password)
      spinner = Spinner(text='选择..', values=s, size_hint=(None, None))
      self.add_widget(spinner)
      self.dlabel = Label(text="%s" % str(spinner.text))
      self.add_widget(self.dlabel)
def show_selected_value(spinner, text): """ # 不知道这是干什么的。 jj=0 for j in range(0,852,1): if b3112012[j][6]==text: tex=text jj=j+1 break """ self.dlabel.text = text
spinner.bind(text=show_selected_value)

太棒了Tito!!你解决了我的问题。非常感谢。我在互联网上找不到任何关于这个问题的帮助。 - user3626551

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接