2012-07-13 3 views
1

GtkTextView이 있는데, 커서를 가운데로 세로로 가운데에 맞출 수있게하고 싶습니다.GtkTextView 커서가 중심선에 항상 있습니다.

커서를 움직이면 텍스트가 위로 (또는 아래로) 스크롤해야하지만 커서는 여전히 가운데 위치에 있어야합니다.

여러 가지 시도 : textview의 첫 번째 및 마지막 문자에 여백을 추가했지만 첫 번째 및 마지막 문자 뒤에 텍스트를 추가 할 때 문제가 발생합니다. 또한 첫 번째 라인을 선택하면 좋지 않습니다. 선택 색상이 "빈"룸으로 확장됩니다. 한마디로

, 내가 필요 :

  1. cursor_move 또는 text_changed에 중심을
  2. 스크롤 텍스트의 마지막 행 다음에 여백을 추가 첫 번째 줄
  3. 전에 마진을 추가 (I 현재이 해결 그러나
cursor_iter = self.TextBuffer.get_iter_at_mark(cursor) 
fflines = round(self.window_height/(2*20)) 
cursor_iter.forward_visible_lines(fflines) 
self.TextEditor.scroll_to_iter(cursor_iter, 0.0, True, 0, 0.5) 

으로,이 방법으로 나는 몇 가지를 필요 내 textview 끝의 개행 문자. 그래서 누군가가 더 나은 해결책을 알고 있다면, 나는 그것을 듣고 기뻐할 것입니다.)

나는 pixelbased 스크롤링을 할 생각 이었지만, 이것에 대해 어떻게 해야할지 모르겠습니다.

몇 가지 제안을 듣고 기쁩니다.

답변

1

분명히 아무도 대답을 내놓지 않았습니다.

나는 결국 어떻게 든 작동하는 무언가를 함께 해킹했다. 가장 깨끗한 코드는 아니지만 누가 신경 써야합니까?

실제로는 텍스트 상자에 패딩을 추가 할 방법이 없으므로 텍스트 파일의 처음과 끝에 패딩을 가져 오는 줄 바꿈을 추가합니다.

당신은 여기 내 구현을 찾을 수 있습니다

당신이 더 알고 메일로 물어 주시기하려면 Launchpad project for UberWriter.

건배, 울프

관련 문제