目录

文本输入

在 1.0.4 版本加入.

_images/textinput-mono.jpg _images/textinput-multi.jpg

TextInput 控件提供了一个可编辑纯文本的输入框。

支持Unicode、多行文本、光标导航、选择及剪贴板功能。

TextInput 使用了两种不同的坐标系:

  • (x, y) - 以像素为单位的坐标,主要用于屏幕上的渲染。

  • (col, row) - 光标索引,以字符/行计,用于选择和光标移动。

使用示例

要创建一个多行 :class:`TextInput`('enter' 键添加新行):

from kivy.uix.textinput import TextInput
textinput = TextInput(text='Hello world')

要创建单行 TextInput,请将 TextInput.multiline 属性设置为 False(此时“回车”键将使 TextInput 失去焦点,并触发 TextInput.on_text_validate() 事件):

def on_enter(instance, value):
    print('User pressed enter in', instance)

textinput = TextInput(text='Hello world', multiline=False)
textinput.bind(on_text_validate=on_enter)

文本输入框的文本存储在其 TextInput.text 属性中。要在文本变化时运行回调函数,可以这样做:

def on_text(instance, value):
    print('The widget', instance, 'have:', value)

textinput = TextInput()
textinput.bind(text=on_text)

你可以将 focus 设置为 Textinput,这意味着输入框将被高亮显示,并请求键盘焦点:

textinput = TextInput(focus=True)

当按下“escape”键,或者有其他控件请求键盘时,文本输入框会失去焦点。你可以将回调绑定到`focus`属性上,以便在焦点变化时收到通知:

def on_focus(instance, value):
    if value:
        print('User focused', instance)
    else:
        print('User defocused', instance)

textinput = TextInput()
textinput.bind(focus=on_focus)

参见 FocusBehavior,这是 TextInput 继承的类,了解更多详情请参考。

选择

当光标位置改变时,选择会自动更新。您可以从 TextInput.selection_text 属性获取当前选中的文本。

处理。

可以通过设置 TextInput.use_handles 属性来启用或禁用选择手柄的使用。在移动设备上,该属性默认值为 True。

选择手柄使用类 Selector 作为选择手柄的基类。您可以通过如下方式自定义选择手柄的颜色:

<Selector>
    color: 0, 1, 0, 1
    # or <Textinput_instance>.selection_color or app.selection_color

TextInput 实例化选择手柄,并将其存储于以下属性中:TextInput._handle_middleTextInput._handle_leftTextInput._handle_right

你应该在实例化TextInput之前设置选择模板,以便让选择手柄应用你所做的更改。

过滤

你可以通过重写 TextInput.insert_text() 来控制哪些文本可以被添加到 TextInput 中。任何通过键入、粘贴或其他方式插入到 TextInput 中的字符串都会经过这个函数。通过重写它,你可以拒绝或修改不需要的字符。

例如,要仅使用大写字符书写::

class CapitalInput(TextInput):

    def insert_text(self, substring, from_undo=False):
        s = substring.upper()
        return super().insert_text(s, from_undo=from_undo)

或者仅允许浮点数(0-9 和一个小数点):

class FloatInput(TextInput):

    pat = re.compile('[^0-9]')
    def insert_text(self, substring, from_undo=False):
        pat = self.pat
        if '.' in self.text:
            s = re.sub(pat, '', substring)
        else:
            s = '.'.join(
                re.sub(pat, '', s)
                for s in substring.split('.', 1)
            )
        return super().insert_text(s, from_undo=from_undo)

默认快捷键

快捷键

描述

左侧

将光标向左移动。

好的,请发送需要翻译的英文内容。

将光标向右移动。

向上

将光标向上移动

向下

将光标向下移动。

首页

将光标移动到行首

好的,请发送需要翻译的英文内容。

将光标移动到行尾

PageUp

将光标移动到3行之前

PageDown

将光标移动到3行之后

退格键

删除光标前的选中内容或字符。

很抱歉,您只发送了“Del”一词,这似乎不是一个完整的英文技术文档内容。请提供需要翻译的完整英文文本,我将为您翻译成简体中文。

删除光标后的字符选区

Shift + <方向键>

开始文本选择。方向可以是上、下、左或右。

Control + c

请提供需要翻译的英文内容。

Control + x

剪切选区

Control + v

我注意到您没有提供需要翻译的英文内容。请发送您希望翻译的英文技术文档或文本,我会按照您的要求将其翻译成简体中文。

Control + a

选择所有内容

Control + Z

撤销

Control + r

重做

备注

要启用 Emacs 风格的键盘快捷键,可以使用 EmacsBehavior

class kivy.uix.textinput.TextInput(**kwargs)[源代码]

基类:FocusBehavior, Widget

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

事件:
on_text_validate

仅在multiline=False模式下,当用户按下“回车”键时触发。此操作同时会使文本输入框失去焦点。

on_double_tap

当文本输入中发生双击时触发。默认行为是选中光标位置周围的文本。更多信息请参见 on_double_tap()

on_triple_tap

当文本输入中发生三次点击时触发。默认行为是选中光标位置所在的行。更多信息请参阅 on_triple_tap()

on_quad_touch

当四个手指触摸文本输入时触发。默认行为是选中全部文本。更多信息参见 on_quad_touch()

警告

当修改一个需要重新绘制的 TextInput 属性时,例如修改 text,更新会在下一个时钟周期发生,而不是立即生效。这可能导致在修改与下一个周期之间对 TextInput 所做的任何更改被忽略,或使用先前的值。例如,在更新 text 后,在同一时钟帧内更改光标位置,会基于先前的文本移动光标,最终可能落在错误的位置。解决方案是使用 schedule_once() 将任何更新安排到下一个时钟周期执行。

备注

当TextInput获得焦点时,选择会被取消。如果你需要在TextInput获得焦点时显示选择,你应该延迟(使用Clock.schedule)调用选择文本的函数(select_all, select_text)。

在 1.10.0 版本发生变更: background_disabled_active 已被移除。

在 1.9.0 版本发生变更: TextInput 现在继承自 FocusBehavior。由于这些属性和方法现在已从 FocusBehavior 继承,因此 keyboard_modeshow_keyboard()hide_keyboard()focus()input_type 已被移除。

在 1.7.0 版本发生变更: 新增了 on_double_tapon_triple_tapon_quad_touch 事件。

在 2.1.0 版本发生变更: keyboard_suggestions 现在继承自 FocusBehavior

allow_copy

决定是否允许复制文本。

在 1.8.0 版本加入.

allow_copy 是一个 BooleanProperty,默认值为 True。

auto_indent

自动缩进多行文本。

在 1.7.0 版本加入.

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

background_active

TextInput 在聚焦时的背景图像。

在 1.4.1 版本加入.

background_active 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/textinput_active'。

background_color

背景的当前颜色,格式为 (r, g, b, a)。

在 1.2.0 版本加入.

background_color 是一个 ColorProperty,默认值为 [1, 1, 1, 1](白色)。

在 2.0.0 版本发生变更: ListProperty 更改为 ColorProperty

background_disabled_normal

TextInput 在禁用时的背景图像。

在 1.8.0 版本加入.

background_disabled_normal 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/textinput_disabled'。

background_normal

TextInput 在未聚焦时的背景图像。

在 1.4.1 版本加入.

background_normal 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/textinput'。

base_direction

文本的基础方向,这会影响当 halign`auto`(默认值)时的水平对齐方式。可用选项有:None、"ltr"(从左到右)、"rtl"(从右到左),以及 "weak_ltr" 和 "weak_rtl"。

备注

此功能需要Pango文本提供程序。

备注

Kivy 文本布局目前尚未实现弱模式,其效果与设置强模式相同。

在 1.10.1 版本加入.

base_direction 是一个 OptionProperty,默认值为 None(如果可能则自动检测 RTL,否则为 LTR)。

border

用于 BorderImage 图形指令的边框。与 background_normalbackground_active 一起使用。可用于自定义背景。

在 1.4.1 版本加入.

它必须是一个包含四个值的列表:(bottom, right, top, left)。请阅读 BorderImage 指令以了解更多关于如何使用它的信息。

border 是一个 ListProperty,默认值为 (4, 4, 4, 4)。

cancel_selection()[源代码]

取消当前选择(如果有)。

copy(data='')[源代码]

将参数`data`中提供的值复制到当前剪贴板。如果`data`不是字符串类型,它将被转换为字符串。如果未提供`data`,则当前选中内容(如果存在)将被复制。

在 1.8.0 版本加入.

cursor

(col, row) 值的元组,表示当前光标位置。如果您想移动光标,可以设置新的 (col, row)。滚动区域将自动更新,以确保光标在视口内可见。

cursor 是一个 AliasProperty

该属性用于设置图形光标是否应闪烁。

在 1.10.1 版本发生变更: cursor_blink 已被重构,以支持开关闪烁功能,先前的行为已移至私有属性 _cursor_blink。之前的默认值 False 已更改为 True

cursor_blink 是一个 BooleanProperty,默认值为 True。

cursor_col

光标的当前列。

cursor_colAliasProperty 对 cursor[0] 的别名属性,只读。

cursor_color

光标当前的颜色,格式为 (r, g, b, a)。

在 1.9.0 版本加入.

cursor_color 是一个 ColorProperty,默认值为 [1, 0, 0, 1]。

在 2.0.0 版本发生变更: ListProperty 更改为 ColorProperty

cursor_index(cursor=None)[源代码]

返回文本/值中的光标索引。

cursor_offset()[源代码]

获取当前行上光标的x偏移量。

cursor_pos

光标当前位置,坐标为 (x, y)。

cursor_pos 是一个 AliasProperty,只读属性。

cursor_row

光标当前所在行。

cursor_rowAliasProperty 对 cursor[1] 的别名属性,只读。

cursor_width

光标当前的宽度。

在 1.10.0 版本加入.

cursor_width 是一个 NumericProperty,默认值为 '1sp'。

cut()[源代码]

将当前选中的内容复制到剪贴板,然后从TextInput中删除。

在 1.8.0 版本加入.

delete_selection(from_undo=False)[源代码]

删除当前选中的文本(如果有)。

disabled_foreground_color

禁用时的前景当前颜色,格式为(r,g,b,a)。

在 1.8.0 版本加入.

disabled_foreground_color 是一个 ColorProperty,默认值为 [0, 0, 0, 5](50% 透明黑色)。

在 2.0.0 版本发生变更: ListProperty 更改为 ColorProperty

do_backspace(from_undo=False, mode='bkspc')[源代码]

从当前光标位置执行退格操作。此操作可能执行多项操作:

  • 如果存在当前选中项,则将其移除。

  • 删除前一个字符并将光标移回。

  • 如果我们在起始位置,则不做任何操作。

do_cursor_movement(action, control=False, alt=False)[源代码]

将光标相对于其当前位置移动。操作可以是以下之一:

  • cursor_left:将光标向左移动

  • cursor_right:将光标向右移动

  • cursor_up:将光标移动到上一行

  • cursor_down:将光标移动到下一行

  • cursor_home:将光标移动到当前行的开头

  • cursor_end:将光标移动到当前行的末尾

  • cursor_pgup:向前移动一“页”

  • cursor_pgdown:向后移动一“页”

此外,某些操作的行为可以被修改:

  • control + cursor_left:将光标向左移动一个单词

  • control + cursor_right:将光标向右移动一个单词

  • control + cursor_up:向上滚动一行

  • control + cursor_down:向下滚动一行

  • control + cursor_home:跳转到文本开头

  • control + cursor_end:跳转到文本末尾

  • alt + cursor_up:将行向上移动

  • alt + cursor_down:将行向下移动

在 1.9.1 版本发生变更.

do_redo()[源代码]

执行重做操作。

在 1.3.0 版本加入.

此操作会重新执行任何已被do_undo/ctrl+z撤销的命令。当按下`ctrl+r`键时,此函数会被自动调用。

do_undo()[源代码]

执行撤销操作。

在 1.3.0 版本加入.

此操作会撤销自上次调用reset_undo()以来所做的所有编辑。当按下`ctrl+z`键时,此函数会自动被调用。

do_wrap

如果为 True,且文本为多行,则超过控件宽度的行将换行到下一行,从而避免水平滚动。禁用此选项可确保一行始终显示为一行。

do_wrap 是一个 BooleanProperty,默认值为 True。

新增于版本 2.1.0。

font_context

字体上下文。None 表示字体被独立使用,因此可以保证使用由 font_name 解析出的 TTF 文件进行绘制。在此处指定一个值会将字体文件加载到命名上下文中,从而在同一上下文中的所有字体之间启用回退。如果设置了字体上下文,则无法保证渲染时对所有字形实际使用指定的 TTF 文件(Pango 会选择它认为最合适的字体)。

如果Kivy链接到了系统范围内的FontConfig安装,你可以通过指定以特殊字符串`system://`开头的字体上下文来加载系统字体。这将加载系统的fontconfig配置,并在其基础上添加你应用特定的字体(这带来了显著的字体族名称冲突风险,Pango可能不会使用你的自定义字体文件,而是从系统中选取一个)。

备注

此功能需要Pango文本提供程序。

在 1.10.1 版本加入.

font_context 是一个 StringProperty,默认值为 None。

font_family

字体族,此选项仅在启用 font_context 时适用。将请求指定的字体族,但请注意该字体可能不可用,或者可能有多个字体以相同族名注册。该值可以是字体上下文中可用的族名(字符串)(例如 system:// 上下文中的系统字体,或使用 kivy.core.text.FontContextManager 添加的自定义字体文件)。如果设置为 None,字体选择由 font_name 设置控制。

备注

如果使用 font_name 引用自定义字体文件,应将其保留为 None。在这种情况下,字体族名称会自动管理。

备注

此功能需要Pango文本提供程序。

在 1.10.1 版本加入.

font_family 是一个 StringProperty,默认值为 None。

font_name

要使用的字体文件名。路径可以是绝对路径或相对路径。相对路径由 resource_find() 函数解析。

警告

根据您的文本提供程序,字体文件可能会被忽略。不过,大多数情况下您可以放心使用,不会出现问题。

如果所使用的字体缺少您正在使用的特定语言/符号的字形,您将看到“[]”空白框字符,而不是实际字形。解决方案是使用包含您需要显示的字形的字体。例如,要显示|unicodechar|,请使用像freesans.ttf这样包含该字形的字体。

font_name 是一个 StringProperty,默认值为 'Roboto'。该值取自 Config

font_size

文本的字体大小,单位为像素。

font_size 是一个 NumericProperty,默认值为 15 sp

foreground_color

前景的当前颜色,格式为 (r, g, b, a)。

在 1.2.0 版本加入.

foreground_color 是一个 ColorProperty,默认值为 [0, 0, 0, 1](黑色)。

在 2.0.0 版本发生变更: ListProperty 更改为 ColorProperty

get_cursor_from_index(index)[源代码]

返回文本索引对应的光标位置(列,行)。

get_cursor_from_xy(x, y)[源代码]

从 (x, y) 位置返回光标的 (列, 行)。

get_max_scroll_x()[源代码]

返回需要向右滚动多少像素,才能显示超出TextInput可见宽度的文本剩余内容。

halign

文本的水平对齐方式。

halign 是一个 OptionProperty,默认值为 'auto'。可用选项包括:auto、left、center 和 right。auto 会尝试自动检测从右到左(RTL)文本的水平对齐方式(仅限 Pango),否则其行为与 left 相同。

在 1.10.1 版本加入.

handle_image_left

用于在TextInput上显示选择左手柄的图像。

在 1.8.0 版本加入.

handle_image_left 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/selector_left'。

handle_image_middle

用于在TextInput上显示光标定位中间手柄的图像。

在 1.8.0 版本加入.

handle_image_middle 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/selector_middle'。

handle_image_right

用于在TextInput上显示选择功能的右侧手柄的图像。

在 1.8.0 版本加入.

handle_image_right 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/selector_right'。

hint_text

小部件的提示文本,当文本为''时显示。

在 1.6.0 版本加入.

在 1.10.0 版本发生变更: 该属性现在是一个AliasProperty,字节值会被解码为字符串。当控件获得焦点时,提示文本将保持可见。

hint_text 是一个 AliasProperty,默认值为 ''。

hint_text_color

hint_text 文本的当前颜色,格式为 (r, g, b, a)。

在 1.6.0 版本加入.

hint_text_color 是一个 ColorProperty,默认值为 [0.5, 0.5, 0.5, 1.0](灰色)。

在 2.0.0 版本发生变更: ListProperty 更改为 ColorProperty

input_filter

根据指定的模式过滤输入,如果模式不为None。如果为None,则不进行任何过滤。

在 1.9.0 版本加入.

input_filter 是一个 ObjectProperty,默认值为 None。它可以是 None'int'`(字符串)、'float'(字符串)或一个可调用对象。如果为 `'int',则只接受数字。如果为 'float',则还会接受一个小数点。最后,如果它是一个可调用对象,它将被调用并传入两个参数:要添加的字符串和一个布尔值,指示该字符串是否为撤销操作的结果(True)。该可调用对象应返回一个新的子字符串,用于替代原字符串。

insert_text(substring, from_undo=False)[源代码]

在当前光标位置插入新文本。重写此函数以对输入文本进行预处理,实现输入验证。

keyboard_on_key_down(window, keycode, text, modifiers)[源代码]

当实例获得焦点时,绑定到键盘的方法。

当实例获得焦点时,此方法会绑定到键盘,并在每次按键输入时被调用。其参数与 kivy.core.window.WindowBase.on_key_down() 相同。

在派生控件中重写该方法时,应调用super以启用Tab键循环。如果派生控件希望将Tab键用于自身目的,则可以在处理完字符后调用super(如果它不希望消耗Tab键)。

与其他键盘函数类似,如果按键已被消耗,则应返回True。

keyboard_on_key_up(window, keycode)[源代码]

当实例获得焦点时,绑定到键盘的方法。

当实例获得焦点时,此方法会绑定到键盘,并在每次输入释放时被调用。其参数与 kivy.core.window.WindowBase.on_key_up() 相同。

在派生组件中重写该方法时,应调用super以支持按Esc键取消焦点。如果派生组件希望将Esc键用于自身用途,可在处理完该字符后调用super(若其不希望消耗该Esc键)。

参见 keyboard_on_key_down()

line_height

行的高度。此属性会根据 font_namefont_size 自动计算。更改 line_height 将不会产生任何影响。

备注

line_height 是单行文本的高度。使用 :attr:`minimum_height`(它也包含内边距)来获取正确显示文本所需的高度。

line_height 是一个 NumericProperty,只读。

line_spacing

行与行之间所占的空间。

在 1.8.0 版本加入.

line_spacing 是一个 NumericProperty,默认值为 0。

lines_to_scroll

设置使用鼠标滚轮时一次滚动的行数。

在 2.2.0 版本加入.

lines_to_scroll 是一个 BoundedNumericProperty,默认值为 3,最小值为 1。

minimum_height

TextInput 内部内容的最小高度。

在 1.8.0 版本加入.

minimum_height 是一个只读的 AliasProperty

警告

minimum_width 是基于 width 计算得出的,因此类似这样的代码会导致无限循环::

<FancyTextInput>:
    height: self.minimum_height
    width: self.height
multiline

如果为 True,该控件将能够显示多行文本。如果为 False,按下“回车”键将使文本输入框失去焦点,而不是添加新行。

multiline 是一个 BooleanProperty,默认值为 True。

on_cursor(instance, value)[源代码]

当光标移动时,重置光标闪烁以保持其显示,并更新所有图形。

触发闪烁事件重置,以便在聚焦时切换闪烁状态。

on_double_tap()[源代码]

当在TextInput内部发生双击时,会触发此事件。默认行为是选中当前光标位置周围的单词。覆盖此事件以提供不同的行为。或者,您可以绑定到此事件以提供额外的功能。

on_quad_touch()[源代码]

当四个手指在TextInput内部触摸时,会触发此事件。默认行为是选中所有文本。覆盖此事件以提供不同的行为。或者,您可以绑定到此事件以提供额外的功能。

on_touch_down(touch)[源代码]

接收触摸按下事件。

参数:
touchMotionEvent

收到触摸事件。该触摸位于父级坐标系中。关于坐标系统的讨论,请参阅 relativelayout

返回:

bool 如果为 True,触摸事件的派发将停止。如果为 False,事件将继续派发给控件树中的其余部分。

on_touch_move(touch)[源代码]

接收触摸移动事件。触摸坐标位于父级坐标系中。

更多信息请参阅 on_touch_down()

on_touch_up(touch)[源代码]

接收触摸抬起事件。触摸坐标位于父级坐标系中。

更多信息请参阅 on_touch_down()

on_triple_tap()[源代码]

当在TextInput内部发生三次点击时,会触发此事件。默认行为是选中当前光标位置周围的行。覆盖此事件以提供不同的行为。或者,您可以绑定到此事件以提供额外的功能。

padding

文本的内边距:[padding_left, padding_top, padding_right, padding_bottom]。

padding也支持双参数形式[水平内边距,垂直内边距]以及单参数形式[内边距]。

在 1.7.0 版本发生变更: 已将 AliasProperty 替换为 VariableListProperty。

padding 是一个 VariableListProperty,默认值为 [6, 6, 6, 6]。

padding_x

文本的水平内边距:[padding_left, padding_right]。

padding_x 也接受单参数形式 [padding_horizontal]。

padding_x 是一个 VariableListProperty,默认值为 [0, 0]。此值可能会被当前主题所更改。

自 1.7.0 版本弃用: 请使用 padding 代替。

padding_y

文本的垂直内边距:[padding_top, padding_bottom]。

padding_y 也接受单参数形式 [padding_vertical]。

padding_y 是一个 VariableListProperty,默认值为 [0, 0]。此值可能会被当前主题所更改。

自 1.7.0 版本弃用: 请使用 padding 代替。

password

如果为 True,该控件将使用 password_mask 中设置的字符集来显示其字符。

在 1.2.0 版本加入.

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

password_mask

设置当 password 为 True 时用于遮蔽文本的字符。

在 1.10.0 版本加入.

password_mask 是一个 StringProperty,默认值为 '*'

paste()[源代码]

将系统剪贴板中的内容(Clipboard)插入到 TextInput 当前光标位置。

在 1.8.0 版本加入.

property pgmove_speed

按PgUp或PgDown键将移动多少垂直距离

readonly

如果为 True,用户将无法更改文本输入的内容。

在 1.3.0 版本加入.

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

replace_crlf

自动将CRLF替换为LF。

在 1.9.1 版本加入.

replace_crlf 是一个 BooleanProperty,默认值为 True。

reset_undo()[源代码]

从内存中重置撤销和重做列表。

在 1.3.0 版本加入.

scroll_distance

从滚动模式切换到选择模式前所需移动的最小距离,单位为像素。建议您根据目标设备屏幕的dpi来设定此值。

在 2.1.0 版本加入.

scroll_distance 是一个 NumericProperty,默认值为 20 像素。

scroll_from_swipe

允许根据 scroll_timeoutscroll_distance 使用滑动手势滚动文本。

在 2.1.0 版本加入.

scroll_from_swipe 是一个 BooleanProperty,在移动操作系统上默认为 True,在桌面操作系统上默认为 False。

scroll_timeout

允许触发 scroll_distance 的超时时间,单位为毫秒。如果用户在此超时时间内未移动 scroll_distance,滚动将被禁用,并开始选择模式。

在 2.1.0 版本加入.

scroll_timeout 是一个 NumericProperty,默认值为 250 毫秒。

scroll_x

视口的X轴滚动值。当光标移动或文本更改时,滚动会自动更新。如果没有用户输入,scroll_x 和 scroll_y 属性可能会被更改。

scroll_x 是一个 NumericProperty,默认值为 0。

scroll_y

视口的Y轴滚动值。更多信息请参见 scroll_x

scroll_y 是一个 NumericProperty,默认值为 0。

select_all()[源代码]

选中此TextInput中显示的所有文本。

在 1.4.0 版本加入.

select_text(start, end)[源代码]

选择此TextInput中显示的部分文本。

在 1.4.0 版本加入.

参数:
start

textinput.text 中开始选择的索引位置

end

textinput.text 中索引,直到该索引处的选择应被显示

selection_color

当前选中项的颜色,格式为 (r, g, b, a)。

警告

颜色应始终包含一个小于1的“alpha”分量,因为选择区域是在文本之后绘制的。

selection_color 是一个 ColorProperty,默认值为 [0.1843, 0.6549, 0.8313, .5]。

在 2.0.0 版本发生变更: ListProperty 更改为 ColorProperty

selection_from

如果选择正在进行或已完成,此属性将表示选择开始处的光标索引。

在 1.4.0 版本发生变更: selection_from 是一个 AliasProperty,默认为 None,只读。

selection_text

当前选中的内容。

selection_text 是一个 StringProperty,默认值为 '',且为只读属性。

selection_to

如果选择正在进行或已完成,此属性将表示选择开始处的光标索引。

在 1.4.0 版本发生变更: selection_to 是一个 AliasProperty,默认为 None,且为只读属性。

tab_width

默认情况下,在文本输入控件中,每个制表符将被替换为四个空格。您可以设置更低或更高的值。

tab_width 是一个 NumericProperty,默认值为 4。

text

控件的文本。

创建一个简单的hello world:

widget = TextInput(text='Hello world')

如果你想用Unicode字符串创建控件,请使用:

widget = TextInput(text=u'My unicode string')

text 是一个 AliasProperty

text_language

文本的语言,若为None,Pango将根据区域设置自动确定。这是一个RFC-3066格式的语言标签(字符串形式),例如"en_US"、"zh_CN"、"fr"或"ja"。这会影响字体选择、度量和渲染。例如,相同的文本字节在`ur`和`ar`语言下可能看起来不同,尽管两者都使用阿拉伯文字。

备注

此功能需要Pango文本提供程序。

在 1.10.1 版本加入.

text_language 是一个 StringProperty,默认值为 None。

text_validate_unfocus

如果为 True,TextInput.on_text_validate() 事件将使控件失去焦点,从而停止监听键盘。当禁用时,由于 TextInput 保持焦点启用,TextInput.on_text_validate() 事件可能会被多次触发。

在 1.10.1 版本加入.

text_validate_unfocus 是一个 BooleanProperty,默认值为 True。

use_bubble

指示是否使用剪切/复制/粘贴气泡。

在 1.7.0 版本加入.

use_bubble 是一个 BooleanProperty,在移动操作系统上默认为 True,在桌面操作系统上默认为 False。

use_handles

指示选择手柄是否显示。

在 1.8.0 版本加入.

use_handles 是一个 BooleanProperty,在移动操作系统上默认为 True,在桌面操作系统上默认为 False。

write_tab

是否按下Tab键应将焦点移至下一个控件,还是应在:class:TextInput`中输入一个制表符。若为`True,则会写入一个制表符;否则,焦点将移至下一个控件。

在 1.9.0 版本加入.

write_tab 是一个 BooleanProperty,默认值为 True