Skip to content

滑块

slider

滑块是提供数值的小部件。拖动滑块会调用一个函数(事件处理程序)。如果在创建滑块后不能修改某些属性,则这些属性被标记为“不可修改”。演示程序 Color-RGB-HSV 使用多个滑块来调整颜色。

python
myslider = slider(bind=myaction, min=0, max=50)
属性名类型说明
bind函数点击按钮时调用的函数。
min标量滑块的最小值。默认值为 0。不可修改。
max标量滑块的最大值。默认值为 1。不可修改。
step标量点击或拖动时的步长。默认值为 0.001*(max-min)。不可修改。
value标量当前值。可以由程序或用户设置。当程序设置值时,不执行绑定函数。
vertical布尔值如果为 True,滑块为垂直方向。默认值为 False(水平)。不可修改。
length标量滑块的长度(以像素为单位)。默认值为 400 px。不可修改。
width标量滑块的宽度(以像素为单位)。默认值为 10 px。不可修改。
left标量滑块左侧的边距(以像素为单位)。默认值为 12 px。不可修改。
right标量滑块右侧的边距(以像素为单位)。默认值为 12 px。不可修改。
top标量滑块上方的边距(以像素为单位)。默认值为 0 px(水平),8 px(垂直)。不可修改。
bottom标量滑块下方的边距(以像素为单位)。默认值为 0 px(水平),8 px(垂直)。不可修改。当前不正常工作。
align字符串如果为 'left',滑块显示在窗口左侧。选项为 'left'、'right'、'none'(默认)。不可修改。
pos画布属性小部件的位置。默认值为 scene.caption_anchor。
disabled布尔值如果为 True,小部件变灰且不活动。
delete()方法myslider.delete() 删除小部件。

以下代码创建了一个具有 id 属性的滑块,用于调整圆锥的长度:

python
cc = cone(color=color.yellow, axis=vec(2.5,0,0), pos=vec(-2,0,0))

def stretch(evt):
    console.log(evt)
    if evt.id == 'x':
        cc.length = evt.value

xslider = slider(bind=stretch, max=5, min=0.5, step=0.1, value=cc.length, id='x')

滑块没有文本字段。如果你希望显示滑块的当前值,请使用 wtext

滑块事件属性

事件处理函数的参数(在上面的代码中为 'evt')将具有以下属性(滑块在点击时的属性):

  • evt.value
  • evt.disabled

此外,你为小部件创建的任何属性(例如 nameid),也将作为 evt 的属性可用。