2013-01-27 3 views
2

꽤 많은 텍스트를 표시하는 QTextEdit가 있습니다. 편집 할 수 없습니다. 처음부터 무언가를 읽고 위로 스크롤하고 싶다면, 새로운 줄이 추가되고 스크롤바가 자동으로 아래쪽으로갑니다. 다양한 프로그램을 사용할 때 비슷한 문제가 발생합니다 (작성된 언어와 관계 없음). 어떻게이 문제를 해결할 수 있습니까?QTextEdit : 스크롤 막대가 아래쪽에있는 경우에만 자동으로 스크롤

새로운 라인 텍스트에 추가 할 때 내가 원하는 동작 : 스크롤이 하단에

  • 경우, 자동으로 아래로 스크롤합니다.
  • 스크롤이 다른 경우
  • , 내 생각

스크롤되지 않는 ensureCursorVisible() 은은 QTextEdit 편집 할 수없는 때문에, 사용자는 그 안에 클릭하지 않습니다, 솔루션되지 않습니다 커서의 위치가 수직 스크롤 바의 위치와 같지 않다.

답변

2

필자는 스크롤 막대 위치 수신기를 만들 것입니다. 스크롤 막대 위치 수신기는 스크롤 위치를 기억하고 하단의 위치를 ​​확인합니다.

그런 다음 줄 바꿈이 추가되면 아래쪽에 있는지 확인하고 아래로 스크롤하면 다른 곳으로 이동 한 다음 해당 위치로 다시 스크롤하십시오.

이것을 확인하려면 horizontalScrollBar() 및 verticalScrollBar()를 통해 QTextEdit에서 가져올 수 있습니다. QScrollBar을 확인하십시오. valueChanged(int value)을하고 here 설명 된 바와 같이 값 플레이 -


보다 구체적인 난 QScrollBar로부터 신호 슬롯을 연결한다.

+0

링크가 끊어졌습니다. –

+0

Thanks for informing me. 링크가 업데이트되었습니다 :) – DRAX

관련 문제