查看源代码 wxSlider (wx v2.4.3)
滑块是一种控件,它带有一个可以前后拖动的滑块手柄,用于改变值。
在 Windows 上,使用轨道条控件。
在 GTK+ 上,只有 2.16 及更高版本才支持刻度线。
滑块生成与 wxScrollBar
相同的事件,但实际上处理 wxSlider
更新的最便捷方法是处理滑块特定的 wxEVT_SLIDER
事件,该事件携带 wxCommandEvent
,其中仅包含最新的滑块位置。
样式
此类支持以下样式
wxSL_HORIZONTAL: 水平显示滑块(这是默认值)。
wxSL_VERTICAL: 垂直显示滑块。
wxSL_AUTOTICKS: 显示刻度线(Windows、GTK+ 2.16 及更高版本)。
wxSL_MIN_MAX_LABELS: 显示最小值、最大值标签(自 wxWidgets 2.9.1 起新增)。
wxSL_VALUE_LABEL: 显示值标签(自 wxWidgets 2.9.1 起新增)。
wxSL_LABELS: 显示最小值、最大值和值标签(与 wxSL_VALUE_LABEL 和 wxSL_MIN_MAX_LABELS 一起使用)。
wxSL_LEFT: 在左侧显示刻度线,并强制滑块垂直(仅限 Windows 和 GTK+ 3)。
wxSL_RIGHT: 在右侧显示刻度线,并强制滑块垂直。
wxSL_TOP: 在顶部显示刻度线(仅限 Windows 和 GTK+ 3)。
wxSL_BOTTOM: 在底部显示刻度线(这是默认值)。
wxSL_BOTH: 在滑块两侧显示刻度线。仅限 Windows。
wxSL_SELRANGE: 显示高亮选定范围。仅限 Windows。
wxSL_INVERSE: 反转滑块上的最小值和最大值端点。与 wxSL_SELRANGE 不兼容。请注意,
wxSL_LEFT
、wxSL_TOP
、wxSL_RIGHT
和wxSL_BOTTOM
指定滑块刻度线的位置,并且滑块标签(如果有)位于另一侧。因此,要在垂直滑块的左侧显示标签,必须使用wxSL_RIGHT
(或者根本不应指定这些样式中的任何一种,因为左侧和顶部分别是垂直和水平滑块的默认位置)。
EVT_SCROLL_THUMBRELEASE 和 EVT_SCROLL_CHANGED 之间的区别
只有在实际使用鼠标拖动滑块并释放时才会发出 EVT_SCROLL_THUMBRELEASE 事件(此 EVT_SCROLL_THUMBRELEASE 事件之后还会发生一个 EVT_SCROLL_CHANGED 事件)。
当使用键盘更改滑块位置,以及单击滑块旁边时,也会发生 EVT_SCROLL_CHANGED 事件(在所有这些情况下,不会发生 EVT_SCROLL_THUMBRELEASE 事件)。简而言之,EVT_SCROLL_CHANGED 事件会在滚动/移动完成后触发,而与其开始的方式无关。请参阅 page_samples_widgets (“滑块”页面),以查看 EVT_SCROLL_THUMBRELEASE 和 EVT_SCROLL_CHANGED 之间的区别。
请参阅
此类派生自以下类,并可以使用其函数:
wxWidgets 文档:wxSlider
事件
此类发出的事件类型
摘要
函数
用于两步滑块构造。
销毁对象
返回行大小。
获取滑块的最大值。
获取滑块的最小值。
返回页大小。
返回滑块手柄的长度。
获取当前滑块值。
默认构造函数。
构造函数,创建并显示滑块。
设置滑块的行大小。
设置滑块的页大小。
设置滑块的最小值和最大值。
设置滑块手柄的长度。
设置滑块位置。
类型
-type wxSlider() :: wx:wx_object().
函数
-spec create(This, Parent, Id, Value, MinValue, MaxValue) -> boolean() when This :: wxSlider(), Parent :: wxWindow:wxWindow(), Id :: integer(), Value :: integer(), MinValue :: integer(), MaxValue :: integer().
等效于 create(This, Parent, Id, Value, MinValue, MaxValue, [])
。
-spec create(This, Parent, Id, Value, MinValue, MaxValue, [Option]) -> boolean() when This :: wxSlider(), Parent :: wxWindow:wxWindow(), Id :: integer(), Value :: integer(), MinValue :: integer(), MaxValue :: integer(), Option :: {pos, {X :: integer(), Y :: integer()}} | {size, {W :: integer(), H :: integer()}} | {style, integer()} | {validator, wx:wx_object()}.
用于两步滑块构造。
有关更多详细信息,请参阅 new/6
。
-spec destroy(This :: wxSlider()) -> ok.
销毁对象
返回行大小。
请参阅:setLineSize/2
获取滑块的最大值。
请参阅
获取滑块的最小值。
请参阅
返回页大小。
请参阅:setPageSize/2
返回滑块手柄的长度。
仅适用于:wxmsw
请参阅:setThumbLength/2
获取当前滑块值。
请参阅
-spec new() -> wxSlider().
默认构造函数。
-spec new(Parent, Id, Value, MinValue, MaxValue, [Option]) -> wxSlider() when Parent :: wxWindow:wxWindow(), Id :: integer(), Value :: integer(), MinValue :: integer(), MaxValue :: integer(), Option :: {pos, {X :: integer(), Y :: integer()}} | {size, {W :: integer(), H :: integer()}} | {style, integer()} | {validator, wx:wx_object()}.
构造函数,创建并显示滑块。
请参阅:create/7
设置滑块的行大小。
请参阅:getLineSize/1
设置滑块的页大小。
请参阅:getPageSize/1
-spec setRange(This, MinValue, MaxValue) -> ok when This :: wxSlider(), MinValue :: integer(), MaxValue :: integer().
设置滑块的最小值和最大值。
请参阅
设置滑块手柄的长度。
仅适用于:wxmsw
请参阅:getThumbLength/1
设置滑块位置。