分割器

在 1.5.0 版本加入.

_images/splitter.jpg

Splitter 是一个帮助您调整其子控件/布局大小的控件,允许您通过拖动边界或双击边界来调整大小。此控件与 ScrollView 类似,仅允许一个子控件。

用法:

splitter = Splitter(sizable_from = 'right')
splitter.add_widget(layout_or_widget_instance)
splitter.min_size = 100
splitter.max_size = 250

要更改用于调整大小的条/边框的大小::

splitter.strip_size = '10pt'

要改变其外观:

splitter.strip_cls = your_custom_class

你也可以通过在你的应用中覆盖 kv 规则来更改 strip_cls 的外观,其默认值为 SplitterStrip

<SplitterStrip>:
    horizontal: True if self.parent and self.parent.sizable_from[0] in ('t', 'b') else False
    background_normal: 'path to normal horizontal image' if self.horizontal else 'path to vertical normal image'
    background_down: 'path to pressed horizontal image' if self.horizontal else 'path to vertical pressed image'
class kivy.uix.splitter.Splitter(**kwargs)[源代码]

基类:BoxLayout

请参阅模块文档。

事件:
on_press

当分割器被按下时触发。

on_release

当分割器被释放时触发。

在 1.6.0 版本发生变更: 添加了 on_presson_release 事件。

add_widget(widget, index=0, *args, **kwargs)[源代码]

将一个新部件添加为此部件的子部件。

参数:
widget: Widget

要添加到我们子控件列表中的控件。

index:整数,默认值为0

在列表中插入控件的索引。请注意,默认值0意味着控件被插入到列表的开头,因此会绘制在其他同级控件之上。关于索引和控件层级结构的完整讨论,请参阅 控件编程指南

在 1.0.5 版本加入.

canvas: 字符串,默认为 None

用于添加控件画布的Canvas。可以是'before'、'after'或None(默认画布)。

在 1.9.0 版本加入.

>>> from kivy.uix.button import Button
>>> from kivy.uix.slider import Slider
>>> root = Widget()
>>> root.add_widget(Button())
>>> slider = Slider()
>>> root.add_widget(slider)
border

用于 BorderImage 图形指令的边框。

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

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

clear_widgets(*args, **kwargs)[源代码]

移除该部件的所有(或指定的):attr:~Widget.children。如果指定了'children'参数,它应为当前部件子项的一个列表(或过滤后的列表)。

在 1.8.0 版本发生变更: children 参数可用于指定你想要移除的子组件。

在 2.1.0 版本发生变更: 指定一个空的``children``列表不会改变现有控件。此前,它会被视为``None``,从而移除所有子控件。

keep_within_parent

如果为 True,将限制分割器保持在父控件范围内。

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

在 1.9.0 版本加入.

max_size

指定控件不可调整大小的最大尺寸。

max_size 是一个 NumericProperty,默认值为 500pt

min_size

指定了控件不可调整大小的最小尺寸。

min_size 是一个 NumericProperty,默认值为 100pt

remove_widget(widget, *args, **kwargs)[源代码]

从该部件的子部件中移除一个部件。

参数:
widget: Widget

要从我们的子部件列表中移除的部件。

>>> from kivy.uix.button import Button
>>> root = Widget()
>>> button = Button()
>>> root.add_widget(button)
>>> root.remove_widget(button)
rescale_with_parent

如果为 True,则在父组件调整大小时,会自动改变尺寸以占据父组件相同的比例,同时保持在 min_sizemax_size 范围内。只要这些属性能够满足,这将阻止 Splitter 在重新缩放时超出父组件的大小。

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

在 1.9.0 版本加入.

sizable_from

指定该部件是否可调整大小。选项有:leftrighttopbottom

sizable_from 是一个 OptionProperty,默认值为 left

strip_cls

指定调整大小条(Strip)的类。

strip_cls 是一个 kivy.properties.ObjectProperty,默认值为 SplitterStrip,其类型为 Button

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

strip_size

指定调整大小条的尺寸。

strp_size 是一个 NumericProperty,默认值为 10pt