通常,微调框小部件返回所选文本。在我的应用程序中,我计划使用一些非标准字母(如:ü,ö,è)作为填充微调器的值。 以下示例适用于我的Windows机器,但我希望避免处理任何非ASCII字符以防止其他操作系统出现问题。
有没有办法直接访问微调器选择的索引而不使用list.index(text)方法?
# This Python file uses the following encoding: utf-8
from kivy.base import runTouchApp
from kivy.uix.spinner import Spinner
spinnervalues = ['one_ö','two_ü','three_ä']
spinner = Spinner(
# default value shown
text='Home',
# available values
values=spinnervalues,
# just for positioning in our example
size_hint=(None, None),
size=(100, 44),
pos_hint={'center_x': .5, 'center_y': .5})
def show_selected_value(spinner, text):
print('The spinner', spinner, 'have text', text)
list_index = spinnervalues.index(text)
print('This list item index:', list_index)
spinner.bind(text=show_selected_value)
runTouchApp(spinner)
我尝试过类似的事情:
spinner.bind(index=show_selected_value)
但没有成功。
答案 0 :(得分:0)
我知道这个原始问题现在已经很老了,但是可以参考:
list_index = spinner.values.index(text)
print('This list item index:', list_index)
打印:
'This list item index:', 2
假设您选择了spinner.values(基于零的索引)列表中的第三项。
我在代码中使用了类似的构造,因为文本(旋转值)可能会根据使用的语言而变化。
如果您在应用程序中使用多个微调器,则这会将值绑定到当前微调器对象。
希望能帮助某人。