2016-06-29 3 views
0

QTableView가 있으며 일부 페이지를 페이지 아래쪽으로 구현해야합니다.정확한 결과를 제공하지 않는 QTableView :: rect() 및 QTableView :: geometry()

일반적으로 QModelIndexes를 모델로 전달하여 스크롤 할 대상을 파악합니다.

QModelIndex top = indexAt(rect().topLeft()); // always good (row 0) 
QModelIndex btm = indexAt(rect().bottomLeft()); // always bad (last visible row + 4); 

내가하는 구형 일부 초조해을했습니다(). bottomLeft()는 horizontalScrollBar() 볼을 차지하지만, 3 행으로 해제 아직합니다. 그것은 살 수 있지만 이상적은 아닙니다. 나는 그것을 해킹하고 폰트 크기가 다를 때 행의 정적 인 수를 상쇄시켜야한다고 확신한다.

솔직히 말해서 QScrollBar가 하나의 single step을 위아래로 스크롤하도록 말할 수 있다면 좋겠지 만 분명히 너무 많은 의미가 있습니다.

답변

1

그 중 rect()은 무엇입니까? 거의 틀림없이 잘못된 것을 요구할 것입니다. 이 뷰는 스크롤 영역이며 rect()viewport()의 뷰입니다.

+0

죄송합니다. 그건 QTableView :: rect(); –

+0

마술처럼, 내가 바꿀 때 viewport() -> rect() -> bottomLeft()가 작동합니다. 건배. –