내 문제 : 필자가 작성한 Tkinter 편집기에서 필자가 작성한 시점에서 파일을 다시로드하고 다시 열어야하는 경우가있다.커서를 반환하는 텍스트 위젯
내 1 다시로드 시도가 텍스트 내 텍스트 위젯입니다이
pos=config.text.index(INSERT) # memorize where I am
... # do stuff
textopen_and_display(currentfn) # reopen it
text.mark_set(INSERT,pos) # go
text.see(INSERT) # there
입니다. 문제는이 방법으로 호출 된 .see() 메서드가 내가 원하는 것을하지 않는다는 것입니다. 즉, INSERT를 볼 수있을만큼 아래로 스크롤하고 중지합니다. 파일 맨 위가 보이는 첫 번째 줄에 있지 않으면 작동하지 않습니다.
내가 필요한 것은 텍스트 위젯의 마지막으로 보이는 행의 색인 : 어떻게 찾을 수 있습니까? 이 색인에서 .see()를 사용하면 원하는 방식으로 작동합니다.
P. 나는 작은 크기 (높이 = 5)로 정의했기 때문에 런타임에 텍스트 위젯 높이를 찾을 수조차 없다. fill = BOTH, expand = 1로 패킹했다.
x_pos = text.xview()[0]
y_pos = text.yview()[0]
스크롤 위치를 복원하려면 : 5
당신은'winfo_height' 메서드를 호출하여 런타임에 실제 높이를 얻을 수 있습니다 - 실제 높이를 반환합니다. –