ItemList
繼承: Control < CanvasItem < Node < Object
可選專案的垂直列表,可以有一列或多列。
說明
該控制項提供了可選專案的垂直列表,這些專案可能位於單列或多列中,每個專案都有文本和圖示選項。支援工具提示,並且列表中的每個專案可能會有所不同。
可以選擇或取消選擇列表中的可選專案,並且可以啟用多項選擇。也可以啟用用滑鼠右鍵進行選擇,以允許使用彈出本文功能表。專案也可以通過按兩下它們,或按 Enter 來“啟動”。
專案文字只支援單行字串。字串中的分行符號(例如 \n)不會產生換行。在 ICON_MODE_TOP 模式下會啟用文字換行,但預設情況下會調整列的寬度以完全適合其內容。需要將 fixed_column_width 設定得大於零,才能換行文字。
所有 set_* 方法都允許負的專案索引,例如 -1 存取的是最後一個專案,-2 選擇的是倒數第二個專案,以此類推。
差異量搜索:與 PopupMenu 和 Tree 一樣,ItemList 支援在控制項獲得焦點時在列表內進行搜索。按下與專案名稱的第一個字母配對的鍵,以選擇以給定字母開頭的第一個專案。在該點之後,有兩種方法可以執行差異量搜索: 1) 在超時持續時間之前再次按下相同的鍵,以選擇下一個以相同字母開頭的專案。 2) 在超時時間前,按配對單詞剩餘部分的字母鍵,將直接選擇問題項。如果自上次擊鍵被註冊後,超時持續時間已過,則這兩個動作都將被重設為列表的開頭。可以通過更改 ProjectSettings.gui/timers/incremental_search_max_interval_msec 來調整超時持續時間。
屬性
|
||
|
||
|
||
|
||
|
||
clip_contents |
|
|
|
||
|
||
focus_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
主題屬性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
訊號
empty_clicked(at_position: Vector2, mouse_button_index: int) 🔗
Emitted when any mouse click is issued within the rect of the list but on empty space.
at_position is the click position in this control's local coordinate system.
Emitted when specified list item is activated via double-clicking or by pressing Enter.
item_clicked(index: int, at_position: Vector2, mouse_button_index: int) 🔗
Emitted when specified list item has been clicked with any mouse button.
at_position is the click position in this control's local coordinate system.
Emitted when specified item has been selected. Only applicable in single selection mode.
allow_reselect must be enabled to reselect an item.
multi_selected(index: int, selected: bool) 🔗
Emitted when a multiple selection is altered on a list allowing multiple selection.
列舉
enum IconMode: 🔗
IconMode ICON_MODE_TOP = 0
圖示繪製在文字上方。
IconMode ICON_MODE_LEFT = 1
圖示繪製在文字的左側。
enum SelectMode: 🔗
SelectMode SELECT_SINGLE = 0
僅允許選擇單個專案。
SelectMode SELECT_MULTI = 1
允許通過按住 Ctrl 或 Shift 來選擇多個專案。
SelectMode SELECT_TOGGLE = 2
Allows selecting multiple items by toggling them on and off.
屬性說明
如果為 true,則可以再次選擇目前選中的專案。
bool allow_rmb_select = false 🔗
如果為 true,點擊滑鼠右鍵可以選中專案。
如果為 true,則允許用字母鍵通過差異量搜索導覽 ItemList。
如果為 true,控制項將自動調整高度以適合其內容。
If true, the control will automatically resize the width to fit its content.
所有列的寬度將調整為。
零值禁用調整,每個專案的寬度將等於其內容的寬度,列的寬度將不均勻。
Vector2i fixed_icon_size = Vector2i(0, 0) 🔗
所有圖示將被調整到的尺寸。
如果 X 或 Y 分量不大於 0,圖示的大小將不會受到影響。
圖示的位置,是在文字的上方還是在文字的左邊。參閱 IconMode 常數。
在 fixed_icon_size 和轉置生效後套用的圖示比例。
目前列表中的專案數。
列表將具有的最大列。
如果大於零,內容將被拆分為指定列。
零值意味著無限列,即所有專案將放在同一行中。
每個子項中允許的最大文字行數。即使沒有足夠的文字行數來顯示,也會保留空間。
注意:這個屬性只有在 icon_mode 是 ICON_MODE_TOP 時才會生效。要使文字自動換行,fixed_column_width應大於零。
bool same_column_width = false 🔗
是否所有列的寬度相同。
如果為 true,則寬度等於所有列的最大列寬度。
SelectMode select_mode = 0 🔗
void set_select_mode(value: SelectMode)
SelectMode get_select_mode()
允許單選或多選。參閱SelectMode常數。
OverrunBehavior text_overrun_behavior = 3 🔗
void set_text_overrun_behavior(value: OverrunBehavior)
OverrunBehavior get_text_overrun_behavior()
The clipping behavior when the text exceeds an item's bounding rectangle.
bool wraparound_items = true 🔗
If true, the control will automatically move items into a new row to fit its content. See also HFlowContainer for this behavior.
If false, the control will add a horizontal scrollbar to make all items visible.
方法說明
int add_icon_item(icon: Texture2D, selectable: bool = true) 🔗
將一個專案新增到專案列表中,沒有文字,只有一個圖示。返回新增的項的索引。
int add_item(text: String, icon: Texture2D = null, selectable: bool = true) 🔗
Adds an item to the item list with specified text. Returns the index of an added item.
Specify an icon, or use null as the icon for a list item with no icon.
If selectable is true, the list item will be selectable.
void clear() 🔗
移除列表中的所有專案。
確保與指定索引相關的專案不被選中。
void deselect_all() 🔗
確保沒有選擇任何專案。
void ensure_current_is_visible() 🔗
確保目前選擇可見,根據需要調整滾動位置。
void force_update_list_size() 🔗
根據其專案強制更新列表大小。只要專案的大小或其他相關設定(例如 auto_height)發生更改,這種情況就會自動發生。該方法可用於在下方一次繪圖前觸發更新。
HScrollBar get_h_scroll_bar() 🔗
Returns the horizontal scrollbar.
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their CanvasItem.visible property.
int get_item_at_position(position: Vector2, exact: bool = false) const 🔗
返回位於給定位置 position 的專案的索引。
這個位置沒有專案時,如果 exact 為 true 則會返回 -1,否則會返回距離最近的專案的索引。
注意:如果修改 ItemList 後立即呼叫,尚未在下一影格中重繪,則返回值不可靠。
AutoTranslateMode get_item_auto_translate_mode(idx: int) const 🔗
Returns item's auto translate mode.
Color get_item_custom_bg_color(idx: int) const 🔗
返回專案的自訂背景色,專案由索引 idx 指定。
Color get_item_custom_fg_color(idx: int) const 🔗
返回專案的自訂前景色,專案由索引 idx 指定。
Texture2D get_item_icon(idx: int) const 🔗
返回與指定索引相關的圖示。
Color get_item_icon_modulate(idx: int) const 🔗
返回指定索引處的 Color 顏色調變項的圖示。
Rect2 get_item_icon_region(idx: int) const 🔗
返回專案圖示的使用區域。如果該區域大小為 0,整個圖示將被使用。
String get_item_language(idx: int) const 🔗
返回專案文字的語言程式碼。
Variant get_item_metadata(idx: int) const 🔗
返回指定索引的中繼資料值。
Rect2 get_item_rect(idx: int, expand: bool = true) const 🔗
返回具有給定索引的專案的位置和大小,使用 ItemList 節點的坐標系。如果 expand 為 true,則會將最後一列進行擴充,充滿該行剩餘的大小。
注意:如果修改 ItemList 後立即呼叫,尚未在下一影格中重繪,則返回值不可靠。
String get_item_text(idx: int) const 🔗
返回與指定索引關聯的文字。
TextDirection get_item_text_direction(idx: int) const 🔗
返回專案文字的基礎書寫方向。
String get_item_tooltip(idx: int) const 🔗
返回與指定索引關聯的工具提示。
PackedInt32Array get_selected_items() 🔗
返回一個包含所選專案索引的陣列。
VScrollBar get_v_scroll_bar() 🔗
返回垂直捲動條。
警告:這是一個必需的內部節點,刪除和釋放它可能會導致當機。如果你希望隱藏它或其任何子項,請使用它們的 CanvasItem.visible 屬性。
選中了一個或多個專案時,返回 true。
bool is_item_disabled(idx: int) const 🔗
索引所對應的專案被禁用時,返回 true。
bool is_item_icon_transposed(idx: int) const 🔗
專案圖示被轉置繪製,即 X 和 Y 軸互換時,返回 true。
bool is_item_selectable(idx: int) const 🔗
索引所對應的專案可以被選中時,返回 true。
bool is_item_tooltip_enabled(idx: int) const 🔗
索引所對應的專案已啟用工具提示時,返回 true。
bool is_selected(idx: int) const 🔗
索引所對應的專案被選中時,返回 true。
void move_item(from_idx: int, to_idx: int) 🔗
將專案從索引 from_idx 移到 to_idx。
從列表中刪除索引 idx 指定的專案。
void select(idx: int, single: bool = true) 🔗
選擇指定索引處的專案。
注意:此方法不觸發專案選擇訊號。
void set_item_auto_translate_mode(idx: int, mode: AutoTranslateMode) 🔗
Sets the auto translate mode of the item associated with the specified index.
Items use Node.AUTO_TRANSLATE_MODE_INHERIT by default, which uses the same auto translate mode as the ItemList itself.
void set_item_custom_bg_color(idx: int, custom_bg_color: Color) 🔗
將索引 idx 指定的專案的背景色設定為指定的 Color。
void set_item_custom_fg_color(idx: int, custom_fg_color: Color) 🔗
將索引 idx 指定的專案的前景色設定為指定的 Color。
void set_item_disabled(idx: int, disabled: bool) 🔗
禁用(或啟用)指定索引處的專案。
禁用的專案不能被選中,也不會觸發(按兩下或按 Enter 時的)啟動訊號。
void set_item_icon(idx: int, icon: Texture2D) 🔗
設定(或替換)與指定索引關聯的圖示 Texture2D。
void set_item_icon_modulate(idx: int, modulate: Color) 🔗
設定與指定索引相關的專案的調變顏色 Color。
void set_item_icon_region(idx: int, rect: Rect2) 🔗
設定專案圖示的使用區域。如果該區域大小為 0,將使用整個圖示。
void set_item_icon_transposed(idx: int, transposed: bool) 🔗
設定專案圖示是否將被轉置繪製。
void set_item_language(idx: int, language: String) 🔗
設定專案文字的語言程式碼,用於斷行和文字塑形演算法,如果留空則使用目前區域設定。
void set_item_metadata(idx: int, metadata: Variant) 🔗
設定與指定索引相關的專案儲存的值(任何型別的值)。
void set_item_selectable(idx: int, selectable: bool) 🔗
允許或禁止選擇與指定索引關聯的專案。
void set_item_text(idx: int, text: String) 🔗
設定與指定索引相關的專案的文字。
void set_item_text_direction(idx: int, direction: TextDirection) 🔗
設定專案文字的基礎書寫方向。
void set_item_tooltip(idx: int, tooltip: String) 🔗
設定與指定索引相關的專案的工具提示。
void set_item_tooltip_enabled(idx: int, enable: bool) 🔗
設定是否為指定的專案索引啟用工具提示。
void sort_items_by_text() 🔗
按文字對列表中的專案進行排序。
主題屬性說明
Color font_color = Color(0.65, 0.65, 0.65, 1) 🔗
專案的預設文字顏色 Color。
Color font_hovered_color = Color(0.95, 0.95, 0.95, 1) 🔗
專案處於懸停但未選中狀態時使用的文字 Color。
Color font_hovered_selected_color = Color(1, 1, 1, 1) 🔗
Text Color used when the item is hovered and selected.
Color font_outline_color = Color(0, 0, 0, 1) 🔗
專案文字輪廓的色調。
Color font_selected_color = Color(1, 1, 1, 1) 🔗
Text Color used when the item is selected, but not hovered.
Color guide_color = Color(0.7, 0.7, 0.7, 0.25) 🔗
輔助線的顏色 Color。輔助線是在每行專案之間畫的一條線。
專案之間的水平間距。
專案的圖示和文字之間的間距。
每行文字之間的行距。
專案文字輪廓的大小。
注意:如果使用啟用了 FontFile.multichannel_signed_distance_field 的字形,其 FontFile.msdf_pixel_range 必須至少設定為 outline_size 的兩倍,輪廓算繪才能看起來正確。否則,輪廓可能會比預期的更早被切斷。
專案選單之間的垂直間距。
專案文字的字形 Font 。
專案文字的字形大小。
當該 ItemList 獲得焦點時,用作游標的樣式盒 StyleBox。
當該 ItemList 未獲得焦點時,用作游標的樣式盒 StyleBox。
該 ItemList 的焦點樣式,繪製在背景之上,但低於其他東西。
懸停但未被選中的專案的 StyleBox。
StyleBox for the hovered and selected items, used when the ItemList is not being focused.
StyleBox hovered_selected_focus 🔗
StyleBox for the hovered and selected items, used when the ItemList is being focused.
該 ItemList 的預設背景。
所選項的樣式盒 StyleBox,當該 ItemList 未獲得焦點時使用。
所選項的樣式盒 StyleBox,當該 ItemList 獲得焦點時使用。