ColorPicker

继承: VBoxContainer < BoxContainer < Container < Control < CanvasItem < Node < Object

提供用于选择或修改颜色的界面的小工具。

描述

提供用于选择或修改颜色的界面的小工具。还可以提供取色器(吸管)、颜色模式、预设等功能。

注意:这个控件就是取色器本身。如果你需要一个能够弹出 ColorPicker 窗口的按钮,可以改用 ColorPickerButton

教程

属性

bool

can_add_swatches

true

Color

color

Color(1, 1, 1, 1)

ColorModeType

color_mode

0

bool

color_modes_visible

true

bool

deferred_mode

false

bool

edit_alpha

true

bool

edit_intensity

true

bool

hex_visible

true

PickerShapeType

picker_shape

0

bool

presets_visible

true

bool

sampler_visible

true

bool

sliders_visible

true

方法

void

add_preset(color: Color)

void

add_recent_preset(color: Color)

void

erase_preset(color: Color)

void

erase_recent_preset(color: Color)

PackedColorArray

get_presets() const

PackedColorArray

get_recent_presets() const

主题属性

Color

focused_not_editing_cursor_color

Color(1, 1, 1, 0.275)

int

center_slider_grabbers

1

int

h_width

30

int

label_width

10

int

margin

4

int

sv_height

256

int

sv_width

256

Texture2D

add_preset

Texture2D

bar_arrow

Texture2D

color_hue

Texture2D

color_script

Texture2D

expanded_arrow

Texture2D

folded_arrow

Texture2D

menu_option

Texture2D

overbright_indicator

Texture2D

picker_cursor

Texture2D

picker_cursor_bg

Texture2D

sample_bg

Texture2D

sample_revert

Texture2D

screen_picker

Texture2D

shape_circle

Texture2D

shape_rect

Texture2D

shape_rect_wheel

StyleBox

picker_focus_circle

StyleBox

picker_focus_rectangle

StyleBox

sample_focus


信号

color_changed(color: Color) 🔗

更改颜色时发出。


preset_added(color: Color) 🔗

添加预设时发出。


preset_removed(color: Color) 🔗

移除预设时发出。


枚举

enum ColorModeType: 🔗

ColorModeType MODE_RGB = 0

允许使用红、绿、蓝滑块在 sRGB 色彩空间中编辑颜色。

ColorModeType MODE_HSV = 1

允许使用色相、饱和度、明度滑块编辑颜色。

ColorModeType MODE_RAW = 2

已弃用: This is replaced by MODE_LINEAR.

ColorModeType MODE_LINEAR = 2

允许使用红、绿、蓝滑块在线性色彩空间中编辑颜色。

ColorModeType MODE_OKHSL = 3

允许使用色相/饱和度/亮度滑块编辑颜色。

OKHSL 是一种类似于 HSL 的新色彩空间,但通过利用设计简单易用的 Oklab 色彩空间更好地匹配感知,同时在预测感知亮度、色度和色调方面做得很好。

Okhsv 和 Okhsl 色彩空间


enum PickerShapeType: 🔗

PickerShapeType SHAPE_HSV_RECTANGLE = 0

HSV 颜色模型矩形色彩空间。

PickerShapeType SHAPE_HSV_WHEEL = 1

HSV 颜色模型矩形色彩空间,带轮。

PickerShapeType SHAPE_VHS_CIRCLE = 2

HSV 颜色模型圆形色彩空间。半径为饱和度。

PickerShapeType SHAPE_OKHSL_CIRCLE = 3

HSL OK 颜色模型圆形色彩空间。

PickerShapeType SHAPE_NONE = 4

色彩空间形状和形状选择按钮被隐藏。不能从形状弹出窗口中选择。

PickerShapeType SHAPE_OK_HS_RECTANGLE = 5

具有恒定亮度的 OKHSL 颜色模型矩形。

PickerShapeType SHAPE_OK_HL_RECTANGLE = 6

具有恒定饱和度的 OKHSL 颜色模型矩形。


属性说明

bool can_add_swatches = true 🔗

  • void set_can_add_swatches(value: bool)

  • bool are_swatches_enabled()

如果为 true,则可以在色板下添加预设。如果为 false,添加预设的按钮将被禁用。


Color color = Color(1, 1, 1, 1) 🔗

  • void set_pick_color(value: Color)

  • Color get_pick_color()

当前选择的颜色。


ColorModeType color_mode = 0 🔗

当前选择的颜色模式。


bool color_modes_visible = true 🔗

  • void set_modes_visible(value: bool)

  • bool are_modes_visible()

如果为 true,则颜色模式按钮可见。


bool deferred_mode = false 🔗

  • void set_deferred_mode(value: bool)

  • bool is_deferred_mode()

如果为 true,只有在用户松开鼠标按钮后才会应用颜色,否则即使在鼠标移动事件中也会立即应用(会造成性能问题)。


bool edit_alpha = true 🔗

  • void set_edit_alpha(value: bool)

  • bool is_editing_alpha()

如果为 true,则显示 Alpha 通道滑块(不透明度)。


bool edit_intensity = true 🔗

  • void set_edit_intensity(value: bool)

  • bool is_editing_intensity()

If true, shows an intensity slider. The intensity is applied as follows: convert the color to linear encoding, multiply it by 2 ** intensity, and then convert it back to nonlinear sRGB encoding.


bool hex_visible = true 🔗

  • void set_hex_visible(value: bool)

  • bool is_hex_visible()

如果为 true,则十六进制颜色代码输入框可见。


PickerShapeType picker_shape = 0 🔗

色彩空间视图的形状。


bool presets_visible = true 🔗

  • void set_presets_visible(value: bool)

  • bool are_presets_visible()

如果为 true,则色板和近期颜色预设可见。


bool sampler_visible = true 🔗

  • void set_sampler_visible(value: bool)

  • bool is_sampler_visible()

如果为 true,则颜色采样器和颜色预览可见。


bool sliders_visible = true 🔗

  • void set_sliders_visible(value: bool)

  • bool are_sliders_visible()

如果为 true,则颜色滑块可见。


方法说明

void add_preset(color: Color) 🔗

将给定的颜色添加到颜色预设列表中。预设会显示在取色器中,可以被用户选择。

注意:预设列表仅适用于这个取色器。


void add_recent_preset(color: Color) 🔗

将给定的颜色添加到近期颜色预设列表中,以便以后可以选择它。近期预设是最近选择的颜色,当选择新颜色时,会自动创建新的预设并将其添加到近期预设中。

注意:近期预设列表仅适用于这个取色器。


void erase_preset(color: Color) 🔗

从这个取色器的颜色预设列表中移除给定的颜色。


void erase_recent_preset(color: Color) 🔗

从这个取色器的颜色近期预设列表中移除给定的颜色。


PackedColorArray get_presets() const 🔗

返回取色器的预设颜色列表。


PackedColorArray get_recent_presets() const 🔗

返回取色器的近期预设中的颜色列表。


主题属性说明

Color focused_not_editing_cursor_color = Color(1, 1, 1, 0.275) 🔗

当选择器的形状部分获得焦点但无法通过键盘或手柄编辑时,矩形或圆形的绘制颜色。该颜色显示在选择器形状上方,因此应使用部分透明的颜色,确保选择器形状仍然可见。


int center_slider_grabbers = 1 🔗

覆盖滑块的 Slider.center_grabber 主题属性。


int h_width = 30 🔗

色相选择滑块的宽度。


int label_width = 10 🔗

滑块旁颜色标签的最小宽度。


int margin = 4 🔗

ColorPicker 周围的边距。


int sv_height = 256 🔗

饱和值选择框的高度。


int sv_width = 256 🔗

饱和度选择框的宽度。


Texture2D add_preset 🔗

“添加预设”按钮的图标。


Texture2D bar_arrow 🔗

箭头抓取器的纹理。


Texture2D color_hue 🔗

右侧的色相选择滑块的自定义纹理。


Texture2D color_script 🔗

用于将颜色文本切换为十六进制的按钮的图标。


Texture2D expanded_arrow 🔗

颜色预设下拉菜单展开时使用的图标。


Texture2D folded_arrow 🔗

颜色预设下拉菜单折叠时使用的图标。


Texture2D menu_option 🔗

颜色预设菜单的图标。


Texture2D overbright_indicator 🔗

该指示器用于指示颜色值在 0-1 范围之外。


Texture2D picker_cursor 🔗

显示在颜色框/圆(取决于 picker_shape)上的图像,标记当前选择的颜色。


Texture2D picker_cursor_bg 🔗

拾取器光标后显示的填充图像。


Texture2D sample_bg 🔗

颜色预览框的背景面板(颜色为半透明时可见)。


Texture2D sample_revert 🔗

恢复按钮的图标(“旧”颜色与当前选中颜色不同时会在其中间显示)。如果“旧”颜色足够亮,那么这个图标会和暗色进行调制,这样图标应该就能够在不同的情况下都保持可见。


Texture2D screen_picker 🔗

屏幕取色器按钮的图标。


Texture2D shape_circle 🔗

圆形拾取器形状的图标。


Texture2D shape_rect 🔗

矩形拾取器形状的图标。


Texture2D shape_rect_wheel 🔗

矩形轮拾取器形状的图标。


StyleBox picker_focus_circle 🔗

拾取器的圆形部分处于聚焦状态时使用的 StyleBox。显示在拾取器形状之上,所以应该使用部分透明的 StyleBox,确保拾取器形状仍然可见。代表轮廓或下划线的 StyleBox 可以很好地实现这个目的。要禁用聚焦的视觉效果,请指定 StyleBoxEmpty 资源。请注意,禁用聚焦的视觉效果会影响使用键盘/手柄进行导航的可用性,所以出于可访问性的原因,不建议这样做。


StyleBox picker_focus_rectangle 🔗

拾取器的矩形部分处于聚焦状态时使用的 StyleBox。显示在拾取器形状之上,所以应该使用部分透明的 StyleBox,确保拾取器形状仍然可见。代表轮廓或下划线的 StyleBox 可以很好地实现这个目的。要禁用聚焦的视觉效果,请指定 StyleBoxEmpty 资源。请注意,禁用聚焦的视觉效果会影响使用键盘/手柄进行导航的可用性,所以出于可访问性的原因,不建议这样做。


StyleBox sample_focus 🔗

旧颜色样本部分处于聚焦状态时使用的 StyleBox。显示在样本之上,所以应该使用部分透明的 StyleBox,确保拾取器形状仍然可见。代表轮廓或下划线的 StyleBox 可以很好地实现这个目的。要禁用聚焦的视觉效果,请指定 StyleBoxEmpty 资源。请注意,禁用聚焦的视觉效果会影响使用键盘/手柄进行导航的可用性,所以出于可访问性的原因,不建议这样做。