App:Library:LVGL:docs:Widgets:Slider (lv slider)

提供: robot-jp wiki
ナビゲーションに移動検索に移動

https://docs.lvgl.io/8.2/widgets/core/arc.html

Slider (lv_slider)

Overview

英文 自動翻訳

The Slider object looks like a Bar supplemented with a knob. The knob can be dragged to set a value. Just like Bar, Slider can be vertical or horizontal.

スライダーは、バー(Bar)にノブ(つまみ)を加えたようなオブジェクトです。ノブはドラッグして値を設定することができます。バーと同じように、スライダーは垂直か水平にすることができます。
戻る : Previous


Parts and Styles

英文 自動翻訳
  • LV_PART_MAIN The background of the slider. Uses all the typical background style properties. padding makes the indicator smaller in the respective direction.
  • LV_PART_INDICATOR The indicator that shows the current state of the slider. Also uses all the typical background style properties.
  • LV_PART_KNOB A rectangle (or circle) drawn at the current value. Also uses all the typical background properties to describe the knob(s). By default, the knob is square (with an optional corner radius) with side length equal to the smaller side of the slider. The knob can be made larger with the padding values. Padding values can be asymmetric too.
  • LV_PART_MAIN スライダーの背景。典型的な背景スタイルのプロパティをすべて使用します。padding は、インジケータをそれぞれの方向に小さくします。
  • LV_PART_INDICATOR スライダーの現在の状態を示すインジケータです。背景のスタイルプロパティを使用します。
  • LV_PART_KNOB 現在の値で描かれる矩形(または円)です。また、ノブ(複数可)を記述するために、すべての典型的な背景のプロパティを使用します。デフォルトでは、ノブは正方形で(オプションで角の半径を指定)、スライダーの小さい方の辺と同じ長さである。ノブはpadding値で大きくすることができる。paddingの値は非対称にすることもできる。
戻る : Previous


Usage

Value and range

英文 自動翻訳

To set an initial value use lv_slider_set_value(slider, new_value, LV_ANIM_ON/OFF).

The animation time is set by the styles' anim_time property.

To specify the range (min, max values), lv_slider_set_range(slider, min , max) can be used.

初期値を設定するには、 lv_slider_set_value(slider, new_value, LV_ANIM_ON/OFF) を使用します。

アニメーションの時間は、スタイルの anim_time プロパティで設定します。

範囲(最小値、最大値)を指定するには、lv_slider_set_range(slider, min , max) を使用します。

戻る : Previous


Modes

英文 自動翻訳

The slider can be one of the following modes:

  • LV_SLIDER_MODE_NORMAL A normal slider as described above
  • LV_SLIDER_SYMMETRICAL Draw the indicator form the zero value to current value. Requires negative minimum range and positive maximum range.
  • LV_SLIDER_RANGE Allows setting the start value too by lv_bar_set_start_value(bar, new_value, LV_ANIM_ON/OFF). The start value has to be always smaller than the end value.


The mode can be changed with lv_slider_set_mode(slider, LV_SLIDER_MODE_...)

スライダには以下のいずれかのモードがあります。
  • LV_SLIDER_MODE_NORMAL 上述した通常のスライダです。
  • LV_SLIDER_SYMMETRICAL ゼロ値から現在値まで描画する。負の最小値範囲と正の最大値範囲が必要です。
  • LV_SLIDER_RANGElv_bar_set_start_value(bar, new_value, LV_ANIM_ON/OFF) で開始値も設定できるようにする。開始値は常に終了値より小さくなければならない。


モードは lv_slider_set_mode(slider, LV_SLIDER_MODE_...) で変更できる。

戻る : Previous


Knob-only mode

英文 自動翻訳

Normally, the slider can be adjusted either by dragging the knob, or by clicking on the slider bar.

In the latter case the knob moves to the point clicked and slider value changes accordingly.


In some cases it is desirable to set the slider to react on dragging the knob only. This feature is enabled by adding the LV_OBJ_FLAG_ADV_HITTEST: lv_obj_add_flag(slider, LV_OBJ_FLAG_ADV_HITTEST).

The extended click area (set by lv_obj_set_ext_click_area(slider, value)) increases to knob's click area.

通常、スライダーは、ノブをドラッグするか、スライダーバーをクリックすることで調整します。後者の場合、ノブはクリックされたポイントに移動し、それに応じてスライダーの値も変化します。


場合によっては、ノブをドラッグしたときだけスライダが反応するように設定することもできます。

この機能は LV_OBJ_FLAG_ADV_HITTESTを追加することで有効になります: lv_obj_add_flag(slider, LV_OBJ_FLAG_ADV_HITTEST).


拡張クリックエリア(lv_obj_set_ext_click_area(slider, value)で設定)はノブのクリックエリアまで増加します。

戻る : Previous


Events

英文 自動翻訳
  • LV_EVENT_VALUE_CHANGED Sent while the slider is being dragged or changed with keys. The event is sent continuously while the slider is dragged and once when released. Use lv_slider_is_dragged to determine whether the Slider is still being dragged or has just been released.
  • LV_EVENT_DRAW_PART_BEGIN and LV_EVENT_DRAW_PART_END are sent for the following parts.
    • LV_SLIDER_DRAW_PART_KNOB The main (right) knob of the slider
      • part: LV_PART_KNOB
      • draw_area: area of the indicator
      • rect_dsc
      • id: 0
    • LV_SLIDER_DRAW_PART_KNOB The left knob of the slider
      • part: LV_PART_KNOB
      • draw_area: area of the indicator
      • rect_dsc
      • id: 1


See the events of the Bar too.

Learn more about Events.

  • LV_EVENT_VALUE_CHANGED スライダがドラッグされている間、またはキーで変更されている間に送信されます。このイベントはスライダがドラッグされている間は連続的に送信され、リリースされると一度だけ送信されます。スライダーがまだドラッグされているのか、それとも解放されただけなのかを判断するにはlv_slider_is_draggedを使用します。
  • LV_EVENT_DRAW_PART_BEGINLV_EVENT_DRAW_PART_END は以下のパートで送信されます。
    • LV_SLIDER_DRAW_PART_KNOB スライダーのメイン(右)ノブ
      • part: LV_PART_KNOB
      • draw_area: インジケータの領域
      • rect_dsc
      • id: 0
    • LV_SLIDER_DRAW_PART_KNOB スライダーの左ノブ
      • part: LV_PART_KNOB
      • draw_area: インジケータの領域
      • rect_dsc
      • id: 1


Barのイベントも参照してください。

イベントの詳細を確認してください。

戻る : Previous


Keys

英文 自動翻訳
  • LV_KEY_UP/RIGHT Increment the slider's value by 1
  • LV_KEY_DOWN/LEFT Decrement the slider's value by 1


Learn more about Keys.

  • LV_KEY_UP/RIGHT スライダーの値を1つ増加させます。
  • LV_KEY_DOWN/LEFT スライダの値を1つ減らします。


キーの詳細を確認してください。

戻る : Previous


Example

英文 自動翻訳

Simple Slider

LVGL docs example 102.png

Slider with custom style

LVGL docs example 103.png

Slider with extended drawer

LVGL docs example 104.png

戻る : Previous


API

英文 自動翻訳

Typedefs

typedef uint8_t lv_slider_mode_t

Enums

enum [anonymous]

Values:
enumerator LV_SLIDER_MODE_NORMAL
enumerator LV_SLIDER_MODE_SYMMETRICAL
enumerator LV_SLIDER_MODE_RANGE

enum lv_slider_draw_part_type_t

type field in lv_obj_draw_part_dsc_t if class_p = lv_slider_class Used in LV_EVENT_DRAW_PART_BEGIN and LV_EVENT_DRAW_PART_END Values:
enumerator LV_SLIDER_DRAW_PART_KNOB
The main (right) knob's rectangle
enumerator LV_SLIDER_DRAW_PART_KNOB_LEFT
The left knob's rectangle

Functions

lv_obj_t *lv_slider_create(lv_obj_t *parent)

Create a slider object
Parameters
parent -- pointer to an object, it will be the parent of the new slider.
Returns
pointer to the created slider

static inline void lv_slider_set_value(lv_obj_t *obj, int32_t value, lv_anim_enable_t anim)

Set a new value on the slider
Parameters
  • obj -- pointer to a slider object
  • value -- the new value
  • anim -- LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately

static inline void lv_slider_set_left_value(lv_obj_t *obj, int32_t value, lv_anim_enable_t anim)

Set a new value for the left knob of a slider
Parameters
  • obj -- pointer to a slider object
  • value -- new value
  • anim -- LV_ANIM_ON: set the value with an animation; LV_ANIM_OFF: change the value immediately

static inline void lv_slider_set_range(lv_obj_t *obj, int32_t min, int32_t max)

Set minimum and the maximum values of a bar
Parameters
  • obj -- pointer to the slider object
  • min -- minimum value
  • max -- maximum value

static inline void lv_slider_set_mode(lv_obj_t *obj, lv_slider_mode_t mode)

Set the mode of slider.
Parameters
  • obj -- pointer to a slider object
  • mode -- the mode of the slider. See ::lv_slider_mode_t

static inline int32_t lv_slider_get_value(const lv_obj_t *obj)

Get the value of the main knob of a slider
Parameters
obj -- pointer to a slider object
Returns
the value of the main knob of the slider

static inline int32_t lv_slider_get_left_value(const lv_obj_t *obj)

Get the value of the left knob of a slider
Parameters
obj -- pointer to a slider object
Returns
the value of the left knob of the slider

static inline int32_t lv_slider_get_min_value(const lv_obj_t *obj)

Get the minimum value of a slider
Parameters
obj -- pointer to a slider object
Returns
the minimum value of the slider

static inline int32_t lv_slider_get_max_value(const lv_obj_t *obj)

Get the maximum value of a slider
Parameters
obj -- pointer to a slider object
Returns
the maximum value of the slider

bool lv_slider_is_dragged(const lv_obj_t *obj)

Give the slider is being dragged or not
Parameters
obj -- pointer to a slider object
Returns
true: drag in progress false: not dragged

static inline lv_slider_mode_t lv_slider_get_mode(lv_obj_t *slider)

Get the mode of the slider.
Parameters
obj -- pointer to a bar object
Returns
see ::lv_slider_mode_t

Variables

const lv_obj_class_t lv_slider_class

struct lv_slider_t

Public Members
lv_bar_t bar
lv_area_t left_knob_area
lv_area_t right_knob_area
int32_t *value_to_set
uint8_t dragging
uint8_t left_knob_focus


Typedef

typedef uint8_t lv_slider_mode_t

列挙型

列挙型[匿名]

値:
列挙子LV_SLIDER_MODE_NORMAL
列挙子LV_SLIDER_MODE_SYMMETRICAL
列挙子LV_SLIDER_MODE_RANGE

列挙型lv_slider_draw_part_type_t

type使用されるlv_obj_draw_part_dsc_t場合のフィールドと値:class_p = lv_slider_classtypedef uint8_t lv_slider_mode_tLV_EVENT_DRAW_PART_BEGINtypedef uint8_t lv_slider_mode_tLV_EVENT_DRAW_PART_END
列挙子LV_SLIDER_DRAW_PART_KNOB
メイン(右)ノブの長方形
列挙子LV_SLIDER_DRAW_PART_KNOB_LEFT
左ノブの長方形

機能

lv_obj_t * lv_slider_create(lv_obj_t * parent)

スライダーオブジェクトを作成する
パラメーター
parent-オブジェクトへのポインタ。新しいスライダーの親になります。
戻り値
作成されたスライダーへのポインター

static inline void lv_slider_set_value(lv_obj_t * obj、int32_t value、lv_anim_enable_t anim)

スライダーに新しい値を設定します
パラメーター
  • obj-スライダーオブジェクトへのポインター
  • value-新しい値
  • anim-- LV_ANIM_ON:アニメーションで値を設定します。LV_ANIM_OFF:値をすぐに変更します

static inline void lv_slider_set_left_value(lv_obj_t * obj、int32_t value、lv_anim_enable_t anim)

スライダーの左ノブに新しい値を設定します
パラメーター
  • obj-スライダーオブジェクトへのポインター
  • -新しい値
  • anim-- LV_ANIM_ON:アニメーションで値を設定します。LV_ANIM_OFF:値をすぐに変更します

static inline void lv_slider_set_range(lv_obj_t * obj、int32_t min、int32_t max)

バーの最小値と最大値を設定します
パラメーター
  • obj-スライダーオブジェクトへのポインター
  • min-最小
  • max-最大値

static inline void lv_slider_set_mode(lv_obj_t * obj、lv_slider_mode_t mode)

スライダーのモードを設定します。
パラメーター
  • obj-スライダーオブジェクトへのポインター
  • mode-スライダーのモード::lv_slider_mode_tを参照してください

static inline int32_t lv_slider_get_value(const lv_obj_t * obj)

スライダーのメインノブの値を取得します
パラメーター
obj-スライダーオブジェクトへのポインター
戻り値
スライダーのメインノブの値

static inline int32_t lv_slider_get_left_value(const lv_obj_t * obj)

スライダーの左ノブの値を取得します
パラメーター
obj-スライダーオブジェクトへのポインター
戻り値
スライダーの左ノブの値

static inline int32_t lv_slider_get_min_value(const lv_obj_t * obj)

スライダーの最小値を取得する
パラメーター
obj-スライダーオブジェクトへのポインター
戻り値
スライダーの最小値

static inline int32_t lv_slider_get_max_value(const lv_obj_t * obj)

スライダーの最大値を取得する
パラメーター
obj-スライダーオブジェクトへのポインター
戻り値
スライダーの最大値

bool lv_slider_is_dragged(const lv_obj_t * obj)

スライダーがドラッグされているかどうかを確認します
パラメーター
obj-スライダーオブジェクトへのポインター
戻り値
true:ドラッグ中false:ドラッグされていません

静的インラインlv_slider_mode_tlv_slider_get_mode(lv_obj_t * slider)

スライダーのモードを取得します。
パラメーター
obj-バーオブジェクトへのポインタ
戻り値
::lv_slider_mode_tを参照してください

変数

const lv_obj_class_t lv_slider_class

struct lv_slider_t

パブリックメンバー
lv_bar_tバー
lv_area_t left_knob_area
lv_area_t right_knob_area
int32_t * value_to_set
uint8_tドラッグ
uint8_t left_knob_focus


戻る : Previous