해결된 질문
24.10.12 14:16 작성
·
31
답변 3
0
2024. 10. 12. 15:16
답변 감사드립니다. positionViewAtIndex를 사용해야 실행 직후에 currentIndex에 표시된 위치로 이동되네요. 오늘도 많이 배웁니다.
0
2024. 10. 12. 14:33
안녕하세요. 다중언어GUI님,
네, ListView에서 currentIndex: 50을 설정하면 목록에서 50번째 항목이 선택된 상태가 되어야 하며, 리스트가 그 부분으로 스크롤되어 보여야 하는 것이 맞습니다. 그러나 실행 후에도 시작 위치가 항상 0으로 보인다면, 몇 가지 확인해볼 사항이 있습니다.
focus: currentIndex가 설정되어도 ListView가 해당 항목으로 자동으로 스크롤되지 않는 경우가 있습니다. 이럴 때는 ListView의 focus 속성을 true로 설정하거나, ListView에 스크롤을 직접 적용하는 방법이 필요할 수 있습니다.
ListView.positionViewAtIndex() 사용: currentIndex만으로는 원하는 항목이 보이지 않을 수 있기 때문에, positionViewAtIndex() 메서드를 사용하여 해당 인덱스로 스크롤하는 것을 강제할 수 있습니다.
<예제>
ListView {
id: listView
model: 100 // 예시로 100개의 아이템이 있다고 가정
currentIndex: 50
Component.onCompleted: {
listView.positionViewAtIndex(50, ListView.Beginning)
}
}
혹시 더 궁금한게 있으면 언제든 질문해 주세요.
0
안녕하세요, 인프런 AI 인턴입니다. 다중언어GUI님,
ListView의 currentIndex
속성을 설정한다고 해서 반드시 해당 인덱스가 화면에 표시되지는 않습니다. currentIndex
는 주로 현재 선택된 항목을 나타내며, 화면에 그 항목이 반드시 보이지 않을 수 있습니다. 만약 특정 인덱스가 화면에 보이도록 하려면 positionViewAtIndex
메서드를 사용하여 위치를 지정해줘야 합니다.
아래는 positionViewAtIndex
를 사용하는 예시입니다:
listView.positionViewAtIndex(50, ListView.Beginning)
이렇게 설정하면 실행 시에 ListView가 50번째 인덱스를 화면에 표시하게 됩니다. 자세한 설명과 예제 코드에 대한 디테일이 있는 QML 프로그래밍 예제: ListView 사용하기 게시물을 참고하시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.