《Python+Kivy(App开发)从入门到实践》自学笔记:简单UX部件——Slider滑块

​​​​​​章节知识点总揽

4.6 Slider滑块

        4.6.1 使用方法

        在kivy中,Slider滑块有着调用方便、兼容性好、可定义强、滑动平稳等优点。在一些项目的设置中,常常要设置Slider滑块,以此来让用户实时接收反馈信息,选择一个最合适的配置。

        在.py文件内使用该滑块需要引入Slider类,通过Slider类生成一个滑块并设置相关样式,再通过add_widget()方法添加到布局中即可,关键代码如下:

from kivy.uix.slider import Slider
sl = Slider(min=0,max=100)
self.add_widget(sl)

        新建main.py文件,具体代码如下:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.slider import Slider


class SliderWidget(FloatLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)

        sl = Slider(min = 0,max = 100)
        self.add_widget(sl)


class SliderApp(App):
    def build(self):
        return SliderWidget()


if __name__ == '__main__':
    SliderApp().run()

        执行main.py文件,结果如下图 :

d57356b34f004cefb8fd3fa0ab4d5f5d.png

        相比之下,在.kv文件内使用它就非常简单,无需引入即可使用,关键代码如下:

Slider:
    min:0
    max:100

        修改main.py文件,删除布局部分,具体内容如下:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.slider import Slider


class SliderWidget(FloatLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)


class SliderApp(App):
    def build(self):
        return SliderWidget()


if __name__ == '__main__':
    SliderApp().run()

        根据main.py文件中SliderApp()类,新建slider.kv文件,内容如下:

<SliderWidget>:
	Slider:
		min:0
		max:100

        运行结果与之前一致。

4.6.2 常用属性

        在Slider小部件中,除了上一节常用的min和max两个属性外,她还支持设置方向、范围、步长、颜色、当前值、轨迹等内容,关于Slider滑块的常用属性具体如下标:

Slider常用属性

属性说明
orientation滑块的方向
min允许的最小值,默认为0
max允许的最大值,默认为100
range滑块的范围,格式为(min,max)
step滑块步长,默认为1
value滑块使用的当前值,默认为0
value_normalizedvalue/max标准化值,必须为0-1之间
value_pos内部光标的位置,基于标准化值
value_track滑块是否现实轨迹
value_track_color滑块轨迹显示的颜色,格式为:rgba,默认为[1,1,1,1]
value_track_width滑块的轨迹宽度,默认为3sp
background_width滑块的背景宽度,用于水平和垂直方向,默认为36sp
border_horizontal用于沿水平方向绘制滑块背景的边框,默认为[0,18,0,18]
border_vertical用于沿垂直方向绘制滑块背景的边框,默认为[18,0,18,0]
cursor_width光标图像的宽度,默认为32sp
cursor_height光标图像的高度,默认为32sp
cursor_size光标图像的大小
padding滑块的填充,默认为16sp
sensitivity点击小部件的整体,还是点击整个光标部分
background_disabled_horizontal默认为“kivy\tools\theming\defaulttheme\sliderh_background_disabled.png”
background_disabled_vertical在垂直方向上禁用滑块时的背景,默认为“sliderv_background_disabled.png”
background_disabled_vertical在水平方向上使用滑块时的背景,默认为“sliderh_background.png”
background_vertical在垂直方向上使用滑块时的背景,默认为“sliderv_background.png”
cursor_disabled_image禁用滑块时光标图像使用的路径,默认为“slider_cursor_disabled.png”
cursor_image光标图像使用的路径,默认为“slider_cursor.png”

        实例:设置Slider滑块的常用属性

        在main.py文件中使用BoxLayout布局加载slider.kv文件。在.kv文件中添加两个滑块,并为其设置前面Image图片的常用属性实例的部分属性(orientation、min、max等),具体代码如下:

        main.py文件内容:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

class SliderWidget(BoxLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)


class SliderApp(App):
    def build(self):
        return SliderWidget()


if __name__ == '__main__':
    SliderApp().run()

        slider.kv文件内容:

<SliderWidget>:
	orientation:'vertical'

	Slider:
		min:0
		max:100
	Slider:
		id:slider_move
		orientation:'vertical'
		min:-100
		max:100
		step:10
		value_track:True
		value_track_color:[1,0,0,1]
		value:25
		pos:200,400

        执行main.py文件,结果如下图:

79eac8bda5b3483cb966429981a81a63.png

4.6.3 触发事件

        在Slider小部件中没有专属的触发事件,但可以使用Kivy提供的移动和触摸事件:

                on_touch_down:在点击部件时触发

                on_touch_up:在释放部件时触发

                on_touch_move:移动时触发

        实例:设置Slider滑块的触发事件

        想要设置Slider滑块的触发事件,首先需要在slider.kv文件内添加上述的触发事件,并设置对应的回调方法(如果方法是在.py内,则使用“root.方法名称”即可),关键代码如下:        

<SliderWidget>:
    Slider:
        min:0
        max:100
        on_touch_down:print('down')
        on_touch_up:print('up')
        on_touch_move:print('move')

        将关键代码加入slider.kv文件,如下:

<SliderWidget>:
	orientation:'vertical'

	Slider:
		min:0
		max:100
		on_touch_down:print('down')
		on_touch_up:print('up')
		on_touch_move:print('move')
        	

	Slider:
		id:slider_move
		orientation:'vertical'
		min:-100
		max:100
		step:10
		value_track:True
		value_track_color:[1,0,0,1]
		value:25
		pos:200,400

        执行main.py文件,结果如下图:

633c0bbb4f7e40b185a3e57dd9e4b80d.png

上一篇:简单UX部件——CheckBox复选框

下一篇:简单UX部件——ProgressBar进度条

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静候光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值