2011-12-01 2 views
1
주요 둔화의 원인

나는를 QGraphicsView와 QGraphicsScene에 오히려 큰 장면 (오픈 스트리트 맵에서 맵 데이터) 렌더링에 Qt를 (맥 버전 4.7)를 사용하고 있습니다. 장면의 항목에 대한 Z 값을 설정하기 전까지는 모든 것이 잘 작동합니다. 나는 이것을하기 위해 두 가지 방법을 시도했다.

QGraphicsPathItem *item = scene->addPath(path, pen); 
item->setZValue(z); 

을, 다른 하나는 내 자신의 QGraphicsItem 하위 클래스를 만들 수 있지만 동일한 문제가 발생합니다 : 하나에서, 난 그냥 할.

느린 다운의 원인은 사물의 Qt는 측면에 나타납니다. 내가의 z 값을 (그것은 아무것도 표시하기 전에 몇 분 정도 걸립니다, 나는 죽음의 회전 해변 공을)를 설정하면 장면이 생성 할 수있는 시간이 오래 걸리지 만이 생성 된 후에는, 속도가 정상으로 돌아 . 또한 응용 프로그램을 닫으려고하면 닫히기 전에 몇 분 동안 중단됩니다. z 값을 그대로두면 이러한 문제가 발생하지 않으며 자체 코드에서 발생하지 않는지 확인하기 위해 디버깅 코드를 추가했습니다.

불행히도 거리를 올바르게 렌더링하려면 z 값을 설정해야합니다 (예 : 도로 주변 윤곽선, 도로를 통과하는 고속도로보다 고속도로 만들기 등).

도움을 주시면 대단히 감사하겠습니다.

답변

4

당신은 고정 된 값으로 bspTreeDepth 설정을 시도 할 수 있습니다. 장면의 항목 위치를 제어합니다. 많은 수의 기존 항목으로 깊이를 변경하는 것은 비용이 많이 듭니다. 최적화를위한

또 다른 후보는 itemIndexMethod입니다. noIndex로 설정하면 실제로 성능이 향상 될 수 있습니다.

+0

는 itemIndexMethod 마법처럼 일했다. 나는 많은 행운을하지 않고 bspTreeDepth에 대해 여러 값을 시도했다. 고맙습니다! –