android - kivy - python - Spinner 输出文本/字符串如何使用

标签 android python spinner kivy

我想将 Spinner 中的 Selected 字符串值用于 Label 文本,但不能这样做,如以下代码所示。帮助任何人!!!

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=Lab​​el(text = "%s"% str(spinner.text)) 在程序运行时未在 dlabel 文本中显示选定的微调器文本。如何获取 Spinner 索引或字符串值以在代码中的任何位置使用?

最佳答案

我猜你的缩进让人很难理解你的 init 方法。无论如何,想法是保存要设置文本的 Label 小部件的实例。在您的情况下,这是 dlabel。正确的代码如下所示:

class LoginScreen(GridLayout):
   def __init__(self, **kwargs):
      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))
      self.add_widget(spinner)
      self.dlabel = Label(text="%s" % str(spinner.text))
      self.add_widget(self.dlabel)

      def show_selected_value(spinner, text):
          """
          # dunno what is that for.
          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)

关于android - kivy - python - Spinner 输出文本/字符串如何使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23598173/

相关文章:

python - python获取csv文件中一列的另一列的值

android - 如何为 Spinner 实现 MatrixCursor?

android - 后端内部错误 : Exception during psi2ir in Jetpack compose

java - 计算样本标准差

android - 我需要帮助向 glSurfaceView 添加第二个纹理

python - Pycharm:导入 ssl 模块时出现问题

python - NumPy 中方便且经济的向量操作

java - ListView 中的微调器似乎出现在 ListView 之外

android - 扩展 Spinner 以添加索引,错误膨胀类

android - Room 不向数据库插入数据