Skip to content

Instantly share code, notes, and snippets.

@bluebright
Created March 14, 2025 05:31
Show Gist options
  • Select an option

  • Save bluebright/f47503e72eb7ed6ae65b320c2b5b36bd to your computer and use it in GitHub Desktop.

Select an option

Save bluebright/f47503e72eb7ed6ae65b320c2b5b36bd to your computer and use it in GitHub Desktop.
Unreal Engine 5.3 ListView 관련 로그
// ===================================================================================================
// 최초 Widget 초기화
[WBP_MyListEntry_C_0] [Entry] [Construct] :
[WBP_MyListEntry_C_0] [Entry] [Event On List Item Object Set] : 0
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 0
[WBP_MyListEntry_C_1] [Entry] [Construct] :
[WBP_MyListEntry_C_1] [Entry] [Event On List Item Object Set] : 1
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 1
[WBP_MyListEntry_C_2] [Entry] [Construct] :
[WBP_MyListEntry_C_2] [Entry] [Event On List Item Object Set] : 2
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 2
[WBP_MyListEntry_C_3] [Entry] [Construct] :
[WBP_MyListEntry_C_3] [Entry] [Event On List Item Object Set] : 3
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 3
[WBP_MyListEntry_C_4] [Entry] [Construct] :
[WBP_MyListEntry_C_4] [Entry] [Event On List Item Object Set] : 4
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 4
[WBP_MyListEntry_C_5] [Entry] [Construct] :
[WBP_MyListEntry_C_5] [Entry] [Event On List Item Object Set] : 5
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 5
[WBP_MyListEntry_C_6] [Entry] [Construct] :
[WBP_MyListEntry_C_6] [Entry] [Event On List Item Object Set] : 6
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 6
[WBP_MyListEntry_C_7] [Entry] [Construct] :
[WBP_MyListEntry_C_7] [Entry] [Event On List Item Object Set] : 7
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 7
[WBP_MyListEntry_C_8] [Entry] [Construct] :
[WBP_MyListEntry_C_8] [Entry] [Event On List Item Object Set] : 8
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 8
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 0
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 1
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 2
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 3
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 4
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 5
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 6
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 7
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 8
// ListView안에 들어있는 아이템 개수와는 상관없이 육안으로 보이는 드러나는 Entry만 초기화 코드가 실행된다.
// 각 Entry에 대해 순차적으로 "Entry::Construct(무조건 한번만 호출됨)" → "Entry::OnListItemObjectSet" → "ListView::OnEntryInitialized" 함수가 호출된다.
// 모든 Entry에 대해 "ListView::OnEntryInitialized"가 호출된 후, 새로 추가된 모든 Entry에 대해 "ListView::OnEntryGenerated" 함수가 호출된다.
// ===================================================================================================
// ===================================================================================================
// 스크롤 (아래로 갔다가 다시 위로)
[WBP_MyListEntry_C_9] [Entry] [Construct] :
[WBP_MyListEntry_C_9] [Entry] [Event On List Item Object Set] : 9
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 9
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 9
[WBP_MyListEntry_C_0] [Entry] [Event On Entry Released] : 0
[WBP_Panel_C_0] [ListView] [On Entry Released] : 0 (Just released)
[WBP_MyListEntry_C_0] [Entry] [Event On List Item Object Set] : 10
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 10
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 10
[WBP_MyListEntry_C_1] [Entry] [Event On Entry Released] : 1
[WBP_Panel_C_0] [ListView] [On Entry Released] : 1 (Just released)
[WBP_MyListEntry_C_1] [Entry] [Event On List Item Object Set] : 11
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 11
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 11
[WBP_MyListEntry_C_2] [Entry] [Event On Entry Released] : 2
[WBP_Panel_C_0] [ListView] [On Entry Released] : 2 (Just released)
[WBP_MyListEntry_C_2] [Entry] [Event On List Item Object Set] : 12
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 12
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 12
[WBP_MyListEntry_C_3] [Entry] [Event On Entry Released] : 3
[WBP_Panel_C_0] [ListView] [On Entry Released] : 3 (Just released)
[WBP_MyListEntry_C_3] [Entry] [Event On List Item Object Set] : 13
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 13
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 13
[WBP_MyListEntry_C_4] [Entry] [Event On Entry Released] : 4
[WBP_Panel_C_0] [ListView] [On Entry Released] : 4 (Just released)
[WBP_MyListEntry_C_4] [Entry] [Event On List Item Object Set] : 14
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 14
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 14
[WBP_MyListEntry_C_5] [Entry] [Event On Entry Released] : 5
[WBP_Panel_C_0] [ListView] [On Entry Released] : 5 (Just released)
[WBP_MyListEntry_C_5] [Entry] [Event On List Item Object Set] : 5
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 5
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 5
[WBP_MyListEntry_C_4] [Entry] [Event On Entry Released] : 14
[WBP_Panel_C_0] [ListView] [On Entry Released] : 14 (Just released)
[WBP_MyListEntry_C_4] [Entry] [Event On List Item Object Set] : 4
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 4
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 4
[WBP_MyListEntry_C_3] [Entry] [Event On Entry Released] : 13
[WBP_Panel_C_0] [ListView] [On Entry Released] : 13 (Just released)
[WBP_MyListEntry_C_3] [Entry] [Event On List Item Object Set] : 3
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 3
[WBP_MyListEntry_C_2] [Entry] [Event On Entry Released] : 12
[WBP_Panel_C_0] [ListView] [On Entry Released] : 12 (Just released)
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 3
[WBP_MyListEntry_C_2] [Entry] [Event On List Item Object Set] : 2
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 2
[WBP_MyListEntry_C_1] [Entry] [Event On Entry Released] : 11
[WBP_Panel_C_0] [ListView] [On Entry Released] : 11 (Just released)
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 2
[WBP_MyListEntry_C_1] [Entry] [Event On List Item Object Set] : 1
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 1
[WBP_MyListEntry_C_0] [Entry] [Event On Entry Released] : 10
[WBP_Panel_C_0] [ListView] [On Entry Released] : 10 (Just released)
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 1
[WBP_MyListEntry_C_0] [Entry] [Event On List Item Object Set] : 0
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 0
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 0
[WBP_MyListEntry_C_9] [Entry] [Event On Entry Released] : 9
[WBP_Panel_C_0] [ListView] [On Entry Released] : 9 (Just released)
// 사라지는 Entry는 "Entry::EventOnEntryReleased" → "ListView::OnEntryReleased" 를 순차적으로 호출된다.
// 보이게 되는 Entry는 위에 있는 [최초 Widget 초기화]에 호출된 함수를 다시 한번 씩 호출한다.
// 여기서 OnEntryGenerated 함수의 경우에는 (다른 Entry의) OnEntryReleased 함수 보다 빠르게 호출될 수도 있고, 느리게 호출될 수도 있다.
// ===================================================================================================
// ===================================================================================================
// ListView의 선택 모드는 "Single Toggle" 상태
//(아무 것도 선택되지 않은 상태에서) 최초 아이템 선택 (클릭)
[WBP_MyListEntry_C_3] [Entry] [Event On Item Selection Changed] : 3 : Select
[WBP_Panel_C_0] [ListView] [On Item Selection Changed] : 3 : Select
[WBP_Panel_C_0] [ListView] [On Item Clicked] : 3
// 선택한 아이템을 다시 선택 → ListView의 선택 모드가 "Single Toggle"이기 때문에 선택이 해제됨 ==============
ListView::OnItemSelectionChanged (Is Selected = false)가 호출되지 않음.........
[WBP_Panel_C_0] [ListView] [On Item Clicked] : 3
[WBP_MyListEntry_C_3] [Entry] [Event On Item Selection Changed] : 3 : Deselect
//아이템 선택 후, 다른 아이템 선택 ================================================================
[WBP_MyListEntry_C_7] [Entry] [Event On Item Selection Changed] : 7 : Select
[WBP_Panel_C_0] [ListView] [On Item Selection Changed] : 7 : Select
[WBP_Panel_C_0] [ListView] [On Item Clicked] : 7
[WBP_MyListEntry_C_1] [Entry] [Event On Item Selection Changed] : 1 : Select
[WBP_MyListEntry_C_7] [Entry] [Event On Item Selection Changed] : 7 : Deselect
[WBP_Panel_C_0] [ListView] [On Item Selection Changed] : 1 : Select
[WBP_Panel_C_0] [ListView] [On Item Clicked] : 1
//선택해제 Entry의 EventOnItemSelectionChanged (false)와 새로 선택되는 Entry의 EventOnItemSelectionChanged (true)의 순서가 바뀔수도 있다.
// ===================================================================================================
// ===================================================================================================
// 아이템 선택 상태에서 뷰 스크롤 (선택된 아이템이 사라지다가 다시 나타남) : 여기서는 1번이 선택된 아이템
(Scroll Down)
[WBP_MyListEntry_C_9] [Entry] [Event On List Item Object Set] : 8
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 8
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 8
[WBP_MyListEntry_C_0] [Entry] [Event On Entry Released] : 0
[WBP_Panel_C_0] [ListView] [On Entry Released] : 0 (Just released)
[WBP_MyListEntry_C_8] [Entry] [Event On List Item Object Set] : 9
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 9
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 9
[WBP_MyListEntry_C_1] [Entry] [Event On Entry Released] : 1
[WBP_Panel_C_0] [ListView] [On Entry Released] : 1 (Just released)
[WBP_MyListEntry_C_0] [Entry] [Event On List Item Object Set] : 10
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 10
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 10
[WBP_MyListEntry_C_1] [Entry] [Event On List Item Object Set] : 11
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 11
[WBP_MyListEntry_C_2] [Entry] [Event On Entry Released] : 2
[WBP_Panel_C_0] [ListView] [On Entry Released] : 2 (Just released)
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 11
[WBP_MyListEntry_C_3] [Entry] [Event On Entry Released] : 3
[WBP_Panel_C_0] [ListView] [On Entry Released] : 3 (Just released)
[WBP_MyListEntry_C_2] [Entry] [Event On List Item Object Set] : 12
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 12
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 12
[WBP_MyListEntry_C_4] [Entry] [Event On Entry Released] : 4
[WBP_Panel_C_0] [ListView] [On Entry Released] : 4 (Just released)
[WBP_MyListEntry_C_3] [Entry] [Event On List Item Object Set] : 13
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 13
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 13
[WBP_MyListEntry_C_5] [Entry] [Event On Entry Released] : 5
[WBP_Panel_C_0] [ListView] [On Entry Released] : 5 (Just released)
[WBP_MyListEntry_C_4] [Entry] [Event On List Item Object Set] : 14
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 14
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 14
[WBP_MyListEntry_C_6] [Entry] [Event On Entry Released] : 6
[WBP_Panel_C_0] [ListView] [On Entry Released] : 6 (Just released)
(Scroll Up) ===========================================================
[WBP_MyListEntry_C_4] [Entry] [Event On Entry Released] : 14
[WBP_Panel_C_0] [ListView] [On Entry Released] : 14 (Just released)
[WBP_MyListEntry_C_6] [Entry] [Event On List Item Object Set] : 5
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 5
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 5
[WBP_MyListEntry_C_3] [Entry] [Event On Entry Released] : 13
[WBP_Panel_C_0] [ListView] [On Entry Released] : 13 (Just released)
[WBP_MyListEntry_C_4] [Entry] [Event On List Item Object Set] : 4
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 4
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 4
[WBP_MyListEntry_C_2] [Entry] [Event On Entry Released] : 12
[WBP_Panel_C_0] [ListView] [On Entry Released] : 12 (Just released)
[WBP_MyListEntry_C_3] [Entry] [Event On List Item Object Set] : 3
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 3
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 3
[WBP_MyListEntry_C_1] [Entry] [Event On Entry Released] : 11
[WBP_Panel_C_0] [ListView] [On Entry Released] : 11 (Just released)
[WBP_MyListEntry_C_2] [Entry] [Event On List Item Object Set] : 2
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 2
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 2
[WBP_MyListEntry_C_0] [Entry] [Event On Entry Released] : 10
[WBP_Panel_C_0] [ListView] [On Entry Released] : 10 (Just released)
[WBP_MyListEntry_C_1] [Entry] [Event On List Item Object Set] : 1
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 1
[WBP_MyListEntry_C_1] [Entry] [Event On Item Selection Changed] : 1 : Select
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 1
[WBP_MyListEntry_C_8] [Entry] [Event On Entry Released] : 9
[WBP_Panel_C_0] [ListView] [On Entry Released] : 9 (Just released)
[WBP_MyListEntry_C_0] [Entry] [Event On List Item Object Set] : 0
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 0
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 0
[WBP_MyListEntry_C_9] [Entry] [Event On Entry Released] : 8
[WBP_Panel_C_0] [ListView] [On Entry Released] : 8 (Just released)
// 재 생성시 Entry::EventOnItemSelectionChanged가 다시 호출된다. (false의 경우는 잘...)
// ===================================================================================================
// ===================================================================================================
선택된 아이템 삭제
[WBP_MyListEntry_C_8] [Entry] [Event On List Item Object Set] : 8
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 8
[WBP_MyListEntry_C_1] [Entry] [Event On Entry Released] : 1
[WBP_Panel_C_0] [ListView] [On Entry Released] : 1 (Destroy Actor)
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 8
(선택되지 않은) 일반 아이템 삭제
[WBP_MyListEntry_C_9] [Entry] [Event On List Item Object Set] : 9
[WBP_Panel_C_0] [ListView] [On Entry Initialized] : 9
[WBP_MyListEntry_C_6] [Entry] [Event On Entry Released] : 5
[WBP_Panel_C_0] [ListView] [On Entry Released] : 5 (Destroy Actor)
[WBP_Panel_C_0] [ListView] [On Entry Generated] : 9
// 단순 ListView::RemoveItem 함수만으로는 OnItemSelectionChanged 함수가 호출되지 않는다.
// ===================================================================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment