Spinner(下拉选择器)

在 1.4.0 版本加入.

_images/spinner.jpg

Spinner 是一个提供从一组值中快速选择一项的控件。在默认状态下,spinner 显示当前选中的值。触摸 spinner 会显示一个下拉菜单,其中包含所有其他可选值,用户可以从中选择一个新的值。

示例::

from kivy.base import runTouchApp
from kivy.uix.spinner import Spinner

spinner = Spinner(
    # default value shown
    text='Home',
    # available values
    values=('Home', 'Work', 'Other', 'Custom'),
    # 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, 'has text', text)

spinner.bind(text=show_selected_value)

runTouchApp(spinner)

Kv 示例:

FloatLayout:
    Spinner:
        size_hint: None, None
        size: 100, 44
        pos_hint: {'center': (.5, .5)}
        text: 'Home'
        values: 'Home', 'Work', 'Other', 'Custom'
        on_text:
            print("The spinner {} has text {}".format(self, self.text))
class kivy.uix.spinner.Spinner(**kwargs)[源代码]

基类:Button

Spinner 类,更多信息请参阅模块文档。

dropdown_cls

用于在按下Spinner时显示下拉列表的类。

dropdown_cls 是一个 ObjectProperty,默认值为 DropDown

在 1.8.0 版本发生变更: 如果设置为字符串,将使用 Factory 来解析类名。

is_open

默认情况下,spinner 是关闭的。设置为 True 可将其打开。

is_open 是一个 BooleanProperty,默认值为 False。

在 1.4.0 版本加入.

option_cls

用于在Spinner下方显示的下拉列表中展示选项的类。该类的`text`属性将用于表示选项的值。

选项类需要:

  • 一个 text 属性,用于显示值。

  • on_release 事件,用于在按下/触摸时触发该选项。

  • 一个 Nonesize_hint_y

  • 设置 height 属性。

option_cls 是一个 ObjectProperty,默认值为 SpinnerOption

在 1.8.0 版本发生变更: 如果你设置一个字符串,将使用 Factory 来解析该类。

sync_height

下拉列表中的每个元素使用默认/用户提供的高度。设置为True可将Spinner的高度值传递给每个下拉列表元素。

在 1.10.0 版本加入.

sync_height 是一个 BooleanProperty,默认值为 False。

text_autoupdate

指示是否应使用 values 属性的第一个值自动更新 spinner 的 text。将其设置为 True 将导致每次 values 更改时,spinner 都会更新其 text 属性。

在 1.10.0 版本加入.

text_autoupdate 是一个 BooleanProperty,默认值为 False。

values

用户可选择的值。它必须是一个字符串列表。

values 是一个 ListProperty,默认值为 []。

class kivy.uix.spinner.SpinnerOption(**kwargs)[源代码]

基类:Button

Spinner 下拉列表中使用的特殊按钮。默认情况下,这只是一个 Button,其 size_hint_y 为 None,高度为 48dp