2012-10-27 3 views
0

많은 작은 위젯을 배치했기 때문에 위젯 (대폭 80,000px 어쩌면 800px 100px)이 있습니다. 거대한 위젯을 QScrollArea에 넣었습니다. 그러나 스크롤 영역은 여전히 ​​전체 위젯을 렌더링합니다. 이로 인해 위젯이 고르지 않게 조작되며, 물건이 더 매끄럽게되기를 원합니다.QScrollArea에 의한 렌더링을 어떻게 제한 할 수 있습니까?

대신에 QScrollAea가 내가 알고있는 요소를 렌더링하기에 충분하도록 지능적으로 표현되기를 바랍니다. (요소는 순서가 정해져 있고 고정 된 크기이므로이 계산은 빠릅니다.)

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? QScrollArea가 이미이 작업을 수행해야합니까?

QListView는 이미이 기능을 구현합니까? (하지만 내 사용자 정의 위젯은 사용자와 상호 작용하는 버튼이있어서 QListWiget은 그것을 자르지 않습니다.)

답변

1

QGraphicsView 사용을 고려 했습니까? 이렇게하면 보이는 객체 만 효율적으로 렌더링 할 수있을뿐 아니라 히트 테스트와 같은 다양한 이점을 얻을 수 있습니다.

+0

그래서 여기에는 버튼과 CSS로 표시되는 QWidgets이 있습니다. 나는이 코드를 재사용하고 싶습니다. 그러나 이것은 매우 유망 해 보입니다. – Sandro

+0

잘라 내기 부분과 최소 크기를 설정할 수 있습니다. 아마도 sizer 힌트가 제대로 업데이트되지 않고 전체 뷰가 다시 렌더링되고 있습니다 (QScrollArea는 기본적으로 지능 렌더링을 수행하지만 sizer에 종속적이라고 생각합니다). 귀하의 버튼이 느린 지 확인하는 것이 좋습니다. CSS 렌더링이 병목 현상 일 수 있습니다. – Chrismit

+0

그래서 "사이 저"힌트가 정확히 무엇입니까? 최소/최대 크기를 의미합니까? 그래서 현재는 수평으로 드래그 할 때 모든 것이 다시 렌더링됩니다. QGraphicsView 또는 QScrollArea 사용에 대한 제안 사항입니까? – Sandro

관련 문제