:github_url: hide .. _class_Range: Range ===== **Успадковує:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Успадковано від:** :ref:`EditorSpinSlider`, :ref:`ProgressBar`, :ref:`ScrollBar`, :ref:`Slider`, :ref:`SpinBox`, :ref:`TextureProgressBar` Абстрактний базовий клас контролю, який представляє номер в діапазоні. .. rst-class:: classref-introduction-group Опис -------- Діапазон (Range) — це абстрактний базовий клас для елементів керування, що представляють число в діапазоні, використовуючи налаштований розмір :ref:`step` та :ref:`page`. Див., наприклад, :ref:`ScrollBar` та :ref:`Slider` для прикладів вузлів вищого рівня, що використовують Діапазон (Range). .. rst-class:: classref-reftable-group Властивості ---------------------- .. table:: :widths: auto +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`allow_greater` | ``false`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`allow_lesser` | ``false`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`exp_edit` | ``false`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`max_value` | ``100.0`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`min_value` | ``0.0`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`page` | ``0.0`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`ratio` | | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`rounded` | ``false`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | |bitfield|\[:ref:`SizeFlags`\] | size_flags_vertical | ``0`` (overrides :ref:`Control`) | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`step` | ``0.01`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ | :ref:`float` | :ref:`value` | ``0.0`` | +--------------------------------------------------------+----------------------------------------------------------+------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Методи ------------ .. table:: :widths: auto +--------+-------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_value_changed`\ (\ new_value\: :ref:`float`\ ) |virtual| | +--------+-------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_value_no_signal`\ (\ value\: :ref:`float`\ ) | +--------+-------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`share`\ (\ with\: :ref:`Node`\ ) | +--------+-------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`unshare`\ (\ ) | +--------+-------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Сигнали -------------- .. _class_Range_signal_changed: .. rst-class:: classref-signal **changed**\ (\ ) :ref:`🔗` Випромінюється, коли :ref:`min_value`, :ref:`max_value`, :ref:`page`, або :ref:`step` зміна. .. rst-class:: classref-item-separator ---- .. _class_Range_signal_value_changed: .. rst-class:: classref-signal **value_changed**\ (\ value\: :ref:`float`\ ) :ref:`🔗` Викликається, коли змінюється ``значення елемента``. При використанні на :ref:`Slider` це викликається безперервно під час перетягування (можливо, кожного кадру). Якщо ви виконуєте ресурсоємну операцію у функції, пов'язаній з :ref:`value_changed`, розгляньте можливість використання *debouncing* :ref:`Timer` для рідшого виклику функції. \ **Примітка:** На відміну від таких сигналів, як :ref:`LineEdit.text_changed`, :ref:`value_changed` також викликається, коли ``value`` встановлюється безпосередньо через код. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описи властивостей ------------------------------------ .. _class_Range_property_allow_greater: .. rst-class:: classref-property :ref:`bool` **allow_greater** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_allow_greater**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_greater_allowed**\ (\ ) Якщо ``true``, :ref:`value` може бути більшим за :ref:`max_value`. .. rst-class:: classref-item-separator ---- .. _class_Range_property_allow_lesser: .. rst-class:: classref-property :ref:`bool` **allow_lesser** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_allow_lesser**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_lesser_allowed**\ (\ ) Якщо ``true``, :ref:`value` може бути меншим за :ref:`min_value`. .. rst-class:: classref-item-separator ---- .. _class_Range_property_exp_edit: .. rst-class:: classref-property :ref:`bool` **exp_edit** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_exp_ratio**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_ratio_exp**\ (\ ) Якщо ``true``, і :ref:`min_value` більше або дорівнює ``0``, :ref:`value` буде представлено експоненціально, а не лінійно. .. rst-class:: classref-item-separator ---- .. _class_Range_property_max_value: .. rst-class:: classref-property :ref:`float` **max_value** = ``100.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_max**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_max**\ (\ ) Максимальне значення. Діапазон обмежується, якщо :ref:`value` більше, ніж :ref:`max_value`. .. rst-class:: classref-item-separator ---- .. _class_Range_property_min_value: .. rst-class:: classref-property :ref:`float` **min_value** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_min**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_min**\ (\ ) Мінімальне значення. Діапазон обмежується, якщо :ref:`value` менше ніж :ref:`min_value`. .. rst-class:: classref-item-separator ---- .. _class_Range_property_page: .. rst-class:: classref-property :ref:`float` **page** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_page**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_page**\ (\ ) Розмір сторінки. Використовується переважно для :ref:`ScrollBar`. Довжина захоплення :ref:`ScrollBar` — це розмір :ref:`ScrollBar`, помножений на :ref:`page` на різницю між :ref:`min_value` і :ref:`max_value`. .. rst-class:: classref-item-separator ---- .. _class_Range_property_ratio: .. rst-class:: classref-property :ref:`float` **ratio** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_as_ratio**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_as_ratio**\ (\ ) Значення, відображене між 0 та 1. .. rst-class:: classref-item-separator ---- .. _class_Range_property_rounded: .. rst-class:: classref-property :ref:`bool` **rounded** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_use_rounded_values**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_using_rounded_values**\ (\ ) Якщо ``true``, значення члена :ref:`value` завжди буде округлено до найближчого цілого числа. .. rst-class:: classref-item-separator ---- .. _class_Range_property_step: .. rst-class:: classref-property :ref:`float` **step** = ``0.01`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_step**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_step**\ (\ ) If greater than ``0.0``, :ref:`value` will always be rounded to a multiple of this property's value above :ref:`min_value`. For example, if :ref:`min_value` is ``0.1`` and step is ``0.2``, then :ref:`value` is limited to ``0.1``, ``0.3``, ``0.5``, and so on. If :ref:`rounded` is also ``true``, :ref:`value` will first be rounded to a multiple of this property's value, then rounded to the nearest integer. .. rst-class:: classref-item-separator ---- .. _class_Range_property_value: .. rst-class:: classref-property :ref:`float` **value** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_value**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_value**\ (\ ) Поточне значення діапазону. Зміна цієї властивості (навіть через код) призведе до спрацьовування сигналу :ref:`value_changed`. Використовуйте :ref:`set_value_no_signal()`, якщо хочете цього уникнути. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описи методів -------------------------- .. _class_Range_private_method__value_changed: .. rst-class:: classref-method |void| **_value_changed**\ (\ new_value\: :ref:`float`\ ) |virtual| :ref:`🔗` Викликається, коли значення **Range** змінюється (за тих самих умов, що й :ref:`value_changed`). .. rst-class:: classref-item-separator ---- .. _class_Range_method_set_value_no_signal: .. rst-class:: classref-method |void| **set_value_no_signal**\ (\ value\: :ref:`float`\ ) :ref:`🔗` Встановлює поточний значення **Range** до вказаного ``value``, без випромінювання сигналу :ref:`value_changed`. .. rst-class:: classref-item-separator ---- .. _class_Range_method_share: .. rst-class:: classref-method |void| **share**\ (\ with\: :ref:`Node`\ ) :ref:`🔗` Бінде два **Range** разом з будь-якими діапазонами, які раніше згруповані або з них. При зміні всіх членів діапазону, вона буде ділитися новим значенням з усіма іншими діапазонами у своїй групі. .. rst-class:: classref-item-separator ---- .. _class_Range_method_unshare: .. rst-class:: classref-method |void| **unshare**\ (\ ) :ref:`🔗` Стопи **Range**, щоб поділитися змінами членів з будь-яким іншим. .. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)` .. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)` .. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)` .. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)` .. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)` .. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)` .. |void| replace:: :abbr:`void (Значення не повертається.)`