获得kivy微调器选择的索引

时间:2015-07-12 19:45:35

标签: spinner kivy

通常,微调框小部件返回所选文本。在我的应用程序中,我计划使用一些非标准字母(如:ü,ö,è)作为填充微调器的值。 以下示例适用于我的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)

但没有成功。

1 个答案:

答案 0 :(得分:0)

我知道这个原始问题现在已经很老了,但是可以参考:

    list_index = spinner.values.index(text)
    print('This list item index:', list_index)

打印:

'This list item index:', 2

假设您选择了spinner.values(基于零的索引)列表中的第三项。

我在代码中使用了类似的构造,因为文本(旋转值)可能会根据使用的语言而变化。

如果您在应用程序中使用多个微调器,则这会将值绑定到当前微调器对象。

希望能帮助某人。